在我的Character类中,我有一个简单的方法getHealth:
public int getHealth(){
return health;
}
Run Code Online (Sandbox Code Playgroud)
在另一个课程中,我有以下方法
public static void playerCombat(ArrayList attacking, ArrayList targets){
Run Code Online (Sandbox Code Playgroud)
此方法采用2个3个字符的数组.
我也有条件,它只能在玩家健康状况> 0时运行.
public static void playerCombat(ArrayList attacking, ArrayList targets){
While(attacking.get(0).getHealth() > 0){
blablabla
}
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Driver.java:13: cannot find symbol
symbol : method getHealth()
location: class java.lang.Object
Run Code Online (Sandbox Code Playgroud)
但是在下面的Main方法中我使用getHealth()方法,它工作正常.我如何解决这个/为什么它在main方法中工作但不是这个?
您使用的是原始集合类型而不是参数化类型,因此Java不知道集合中Character的内容是什么.你应该对此发出警告; 这是有原因的.(顺便说一句,这Character是一个危险的类名,因为它与之冲突java.lang.Character.)
ArrayList用ArrayList<Character>,或更好的方式替换您的参数List<Character>.