Я хочу обновить объект Contact, который имеет 2 поля - name & phoneNumber.К сожалению, я не знаю, почему методы установки не работают.
Сначала я попробовал с #1
версией метода updateContact () - код ниже.Я думаю, что это может иметь что-то с обновлением ссылки на объект, а не сам объект?Я не уверен.
Если кто-нибудь может мне это объяснить, почему код с установщиками не работает ... - Я имею в виду, что он обновляет «контакт» внутри функции, но не обновляет контакт в ArrayList-контактах.
Метод #2
работает, но я не уверен, что это хорошая идея / решение - ну, это работает ... но я думаю, что с сеттерами это должно работать также.
1
public void updateContact(String name) {
Contact contact = findContact(name);
System.out.print("Enter new name: ");
contact.setName(scanner.nextLine());
System.out.print("Enter new phone number (9 numbers): ");
contact.setPhoneNumber(scanner.nextLine());
}
2
public void updateContact(String name) {
Contact contact = findContact(name);
String replaceName;
String replaceNumber;
System.out.print("Enter new name: ");
replaceName = scanner.nextLine();
System.out.print("Enter new phone number (9 numbers): ");
replaceNumber = scanner.nextLine();
Contact replace = new Contact(replaceName, replaceNumber);
contacts.set(contacts.indexOf(contact), replace);
}
метод findContact
public Contact findContact(String name) {
Contact currentContact = null;
for (Contact contact : contacts) {
if (contact.getName().equals(name)) {
currentContact = new Contact(name, contact.getPhoneNumber());
}
}
return currentContact;
}
Заранее спасибо за помощь.