我想用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
引用参数。