我有一个PhoneBook
类扩展AbstractCollection<Contact>
,其中我覆盖了add
,size
和iterator
方法。在main函数中,我创建了PhoneBook
类的新实例,并尝试使用Contact
方法向其添加add
。
显然一切都编译得很好但是我在运行时得到一个异常说:
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
The method add(Contact) is undefined for the type PhoneBook
The method add(Contact) is undefined for the type PhoneBook
The method size() is undefined for the type PhoneBook
我不知道为什么会这样,我的搜索没有提供任何有用的信息。导致错误的代码:
public class PhoneBook extends AbstractCollection<Contact> {
private HashSet<Contact> contacts = new HashSet<>();
@Override
public boolean add(Contact newContact) {
return contacts.add(newContact);
}
@Override
public int size() {
return contacts.size();
}
@Override
public Iterator<Contact> iterator() {
return contacts.iterator();
}
}
public class Application {
public static void main(String[] args) {
PhoneBook book = new PhoneBook();
book.add(new Contact("Marco Polo", "asd@acf.com"));
book.add(new Contact("Pablo Cablo", "asd@ccf.com"));
book.size();
System.out.println(book);
}
}
我究竟做错了什么?
答案 0 :(得分:2)
您确定要编译所有文件吗?确保您不会意外地编译其中一个java文件的旧副本或类似的东西。删除所有.class文件并重新编译并检查它们是否存在。