类之间的修复方法冲突?

How*_*can 1 java arraylist

在我的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方法中工作但不是这个?

chr*_*ke- 6

您使用的是原始集合类型而不是参数化类型,因此Java不知道集合中Character的内容是什么.你应该对此发出警告; 这是有原因的.(顺便说一句,这Character是一个危险的类名,因为它与之冲突java.lang.Character.)

ArrayListArrayList<Character>,或更好的方式替换您的参数List<Character>.