我正在创建一个对象数组列表,并试图将它们打印出来。然而,当我去打印时,却找不到方法。
重新研究了arraylist对象并复制了一些其他代码。我只是似乎找不到代码的问题。
public class Main{
public static void main(String[] args){
List<PhoneBook> users = new ArrayList<>();
users.add(new PhoneBook("Paul", 4129991));
users.add(new PhoneBook("Kelly", 5702135));
for(int i = 0; i<users.size(); i++){
System.out.println("PhoneBook " + PhoneBook.getName());
}
}
}
class PhoneBook{
private String name;
private int phoneNumber;
public PhoneBook(String name, int phoneNumber){
this.name = name;
this.phoneNumber = phoneNumber;
}
public String getName(){
return name;
}
public int getPhoneNumber(){
return phoneNumber;
}
public void setName(String name){
this.name = name;
}
public void setPhoneNumber(int phoneNumber){
this.phoneNumber = phoneNumber;
}
}
您遇到了一个问题,因为您的users
数据结构是PhoneBook
对象的ArrayList
,这意味着您应该尝试操作ArrayList
中的元素,而不是操作不存在的PhoneBook
对象。
更改您现有的代码:
for(int i = 0; i<users.size(); i++){
System.out.println("PhoneBook " + PhoneBook.getName());
}
至:
for(int i = 0; i<users.size(); i++){
System.out.println("PhoneBook " + users.get(i).getName());
}
您的代码应该通过索引(i
变量(迭代ArrayList
的每个元素,并从该ArrayList
中的每个项中获取名称。PhoneBook
是类的名称,但不引用数据结构的元素。尽管这些元素是PhoneBook
的实例,但调用类名并没有引用任何特定的内容,这就是编译器抱怨的原因。