我想用java中的arraylist尝试电话簿的简单实现。
首先我做了一个包含什么信息的类。需要和第二,我想要另一个类,该类具有获取信息和打印它们的方法。

而且由于我想使用数组列表,这是我到目前为止所做的,但是“ print”方法一直在for循环中给我错误,是否有人可以帮助我优化代码,为什么有这个原因错误。

这是头等舱:

public class PhoneBook {
long number;
String name;
.
.
.
.

getter() and setter();
}


第二类方法:

public class PhoneBookMethods {

ArrayList<PhoneBook> phoneBooks = new ArrayList<PhoneBook>();

public void getInfo(PhoneBook phoneBooks)
{

.
.
.
}
public void print(PhoneBook phoneBooks)
{
    for (PhoneBook p: phoneBooks) {// this is where I got the error
//foreach not applicable to type 'PhoneBook'
        System.out.print(p.getName());
        ....
    }
}


}

最佳答案

在for-each循环中,更改

for (PhoneBook p: phoneBooks)




for (PhoneBook p: this.phoneBooks)


这样您就可以访问phoneBooks数组列表,而不是print方法的参数。

编辑:

您可以使用“ this”关键字使您的代码更加“显式”。
例如,在您的情况下,您有一个名为phoneBooks的自变量,其名称与您的ArrayList(成员变量)相同。因此,要明确区分两者,请使用this.phonebooks访问成员变量phoneBooks(ArrayList),并使用phoneBooks引用参数。

10-07 21:24