我是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>();

09-10 05:22
查看更多