我是Java的新手,可能看不到什么,但这是我的问题:
由于某些原因,我无法访问我的类MenuItem
的方法:
public class MenuItem {
String name;
double price;
public MenuItem (String name, double price) {
this.name = name;
this.price = price;
}
public String getName() {
return this.name;
}
public String toString() {
return this.name + "\t" + this.price;
}
}
在下面的代码片段中,我的IDE用红色强调了
getName()
方法并说:“找不到标志”
这是代码:
public static void main(String[] args) {
ArrayList<Object> menuItems = new ArrayList<Object>();
menuItems.add(new MenuItem("Pizza", 2.22));
System.out.println(menuItems.get(0).getName());
}
我将自己的代码与其他代码进行了比较,没有发现任何不同。
toString()
方法以某种方式可以正常工作。它返回this.name + "\t" + this.price;
,而不是删除方法时的filechallenge.MenuItem@15db9742
。有人有主意吗?我真的不明白...
最佳答案
ArrayList<Object> menuItems ;
键入以容纳
Object
的引用。它不知道您在运行时添加了什么。将其更改为特定类型
List<MenuItem> menuItems = new ArrayList<MenuItem>();