Java ArrayList找不到符号
我试图创建一个方法,从名为enemyArray的ArrayList中的超类中随机挑选一个敌人 当我试图从超类调用getName方法时,我在底部得到了错误 你们当中有谁能告诉我我在做什么Java ArrayList找不到符号,java,arraylist,cannot-find-symbol,Java,Arraylist,Cannot Find Symbol,我试图创建一个方法,从名为enemyArray的ArrayList中的超类中随机挑选一个敌人 当我试图从超类调用getName方法时,我在底部得到了错误 你们当中有谁能告诉我我在做什么 GameMain.java:51: error: cannot find symbol String name = enemyArray.get(enemy).getName(); ^ symbol: method getN
GameMain.java:51: error: cannot find symbol
String name = enemyArray.get(enemy).getName();
^
symbol: method getName()
location: class Object
GameMain.java:56: error: cannot find symbol
System.out.println("you look behind you and see a "+enemyArray.get(enemy).getName());
^
symbol: method getName()
location: class Object
2 errors
这将enemyArray
声明为对象的列表。缺少泛型参数。调用enemyArray.get(敌军)
时,结果是一个对象
,而对象
没有getName()
方法,因此会出现错误
public static void enterCastle(ArrayList enemyArray, Random rand)
publicstaticvoid enterCastle(ArrayList-enemyArray,Random)
这将enemyArray
声明为对象的列表。缺少泛型参数。调用enemyArray.get(敌军)
时,结果是一个对象
,而对象
没有getName()
方法,因此会出现错误
public static void enterCastle(ArrayList enemyArray, Random rand)
publicstaticvoid enterCastle(ArrayList-enemyArray,Random)
我们假设您的代码是这样的:
public static void enterCastle(ArrayList<Enemy> enemyArray, Random rand)
只需将enterCastle方法的方法签名更改为:
class Enemy{
public String getName(){
// bla bla
return "hey";
}
}
class Knight extends Enemy{
}
class Skeleton extends Enemy{
}
class Demon extends Enemy{
}
publicstaticvoid enterCastle(ArrayList-enemyArray,Random)
错误原因:
由于您没有提到泛型类型,Java假定将其作为对象,因此无法找到该方法。我们假设您的代码如下所示:
public static void enterCastle(ArrayList<Enemy> enemyArray, Random rand)
只需将enterCastle方法的方法签名更改为:
class Enemy{
public String getName(){
// bla bla
return "hey";
}
}
class Knight extends Enemy{
}
class Skeleton extends Enemy{
}
class Demon extends Enemy{
}
publicstaticvoid enterCastle(ArrayList-enemyArray,Random)
错误原因:
由于您没有提到泛型类型,Java假定将其作为对象,因此无法找到该方法。Trypublicstaticvoidentercastle(ArrayList-enemyArray,Random-rand){…
Trypublicstaticvoidentercastle(ArrayList-enemyArray,Random-rand){…
第一个代码块的部分对于您的答案和OPs问题的解决方案并不重要。您可以考虑删除它。@Tom,我之所以使用它,是因为如果初学者遇到这个问题,他/她可能会担心正在使用的类以及它们之间的关系。可能它可以帮助某人…等等e“让我们假设”第一个代码块的部分对于您的答案和OPs问题的解决方案并不重要。您可以考虑删除它。@Tom,我使用它只是因为如果初学者遇到这个问题,他/她可能会担心正在使用的类以及它们之间的关系。可能它可以帮助某人。。。