Статический и нестатический

В 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("");
Другие вопросы по тегам