Я хочу установить значение частного поля с инициализатором двойных скобок. Следующий работает
Customer customer1 = new Customer();
customer1.setFirstName("Nick");
Это также работает:
Customer customer3 = new Customer("John", "Hammond", true, 80, "3/4/1978");
Я также хочу установить значение частного поля примерно так. Я знаю, что это не правильный путь. Есть ли правильный способ сделать это?
Customer customer2 = new Customer()
{
{
firstName = setFirstName("George");
}
};
@GhostCat окей, а зачем ему Сет... звони туда?
И несвязанный: прочитайте о соглашениях об именах Java. Имена методов идут в camelCase() в java всегда!
Вы не можете назначить приватное поле в блоке инициализации с двойной скобкой. Просто скажи setFirstName("George")
(без задания).
Сработало... Большое спасибо
Возможно, этот пост поможет вам: stackoverflow.com/questions/1100120/…
Спасибо всем за ваши ответы, и я извиняюсь за имена Pascal Case в моих методах. Ответ следующий (все поля моего класса являются общедоступными, кроме поля firstName, которое является закрытым):
Customer customer2 = new Customer()
{
{
setFirstName("Tom");
lastName = "Cruz";
reliable = true;
weight = 70;
dateOfBirth = "2/3/1970";
}
};
как, черт возьми, этот последний пример должен иметь смысл? почему «SetFirstName» начинается с большой буквы S?