Статический и нестатический
В editContact на "[Contact.getName()]" я получаю ошибки:
- Невозможно сделать статическую ссылку на нестатический метод getName () из типа Contact
- Несоответствие типов: невозможно преобразовать строку в строку типа int
Почему это так и как я могу решить проблему? Спасибо!
public class ContactList
{
private final int MAX_NUMBER_OF_CONTACTS = 100;
private Contact[] contactList = new Contact[MAX_NUMBER_OF_CONTACTS];
public void addContact(String contactName, String contactNumber,
String contactEmail, String contactAddress)
{
if (Contact.getContactCount() >= MAX_NUMBER_OF_CONTACTS)
{
System.err
.println("Eror: You have too many contacts, delete one of them you fool!");
return;
public int editContact(String contactToEdit)
{
if (editContact(contactToEdit) < 0)
{
return -1;
}
else
contactList[Contact.getName()].setName("");
contactList[Contact.getPhoneNumber()].setPhoneNumber("");
contactList[Contact.getEmail()].setEmail("");
contactList[Contact.getAddress()].setAddress("");
}
}
2 ответа
Вот:
contactList[Contact.getName()]
Вы пытаетесь использовать String
доступ к индексу массива. Массив int
на основе индекса.
Похоже, вам нужно искать Contact
экземпляр для обновления в вашем массиве. Вы можете сделать это с помощью for
цикл:
int index = 0;
for (Contact contact : contactList) {
//use this or another condition
if (contact.getName().equals(contactToEdit)) {
//update this instance of contact
contact.setName(...);
return index;
}
index++;
}
Я думаю, вы пытаетесь очистить контактную информацию contactToEdit
int contactIdToEdit = findContactIdForName(contactToEdit);
if (contactIdToEdit < 0)
return;
Contact c = contactList[contactIdToEdit];
c.setName("");
c.setPhoneNumber("");
c.setEmail("");
c.setAddress("");