Java中Suitcase类toString调用getTotalWeight报cannot find symbol错误原因
问题解答
报错根源
cannot find symbol报错的核心原因是方法调用的对象类型错误:
getTotalWeight()是定义在Suitcase类本身的成员方法,不属于ArrayList类的内置方法- 你代码中写的
this.items.getTotalWeight()里,this.items是ArrayList<Item>类型的实例,它没有对应getTotalWeight()的方法实现,编译器找不到方法定义就会抛出该报错。
修复方法
直接把toString方法里的this.items.getTotalWeight()改为this.getTotalWeight()即可,修改后完整的toString方法代码如下:
public String toString() { if (this.items.size() == 1) { return this.items.size() + " item (" + this.getTotalWeight() + " kg)"; } else { return this.items.size() + " items (" + this.getTotalWeight() + " kg)"; } }
内容的提问来源于stack exchange,提问作者sqpl13
相关产品推荐
相关产品推荐

