1
import java.util.*;

public class GameMain{

   public static void main(String [] args){
      Scanner scan = new Scanner(System.in);
      Random rand = new Random();
      Enemy e1 = new Knight();
      Enemy e2 = new Skeleton();
      Enemy e3 = new Demon();
      ArrayList<Enemy> enemyArray = new ArrayList<Enemy>(); 
      enemyArray.add(e1);
      enemyArray.add(e2);
      enemyArray.add(e3);
   }



  public static void enterCastle(ArrayList enemyArray, Random rand){   

       int enemy = rand.nextInt(2);
       String name = enemyArray.get(enemy).getName();
       System.out.println();
       System.out.println("You enter the castle");
       System.out.println("Darkness are closing on you!");
       System.out.println("You hear something from behind you");
       System.out.println("you look behind you and see a "+enemyArray.get(enemy).getName());


       }

エラー:

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 と呼ばれる ArrayList にあるスーパー クラスからランダムな敵を選択するメソッドを作成しようとしています。

スーパークラスから getName メソッドを呼び出そうとすると、一番下にエラーが表示されます。

あなたのプロの誰かが私が何をしているのか教えてもらえますか?

4

2 に答える 2

3
public static void enterCastle(ArrayList enemyArray, Random rand)

enemyArrayこれは s のリストとして宣言しObjectます。ジェネリック パラメータがありません。を呼び出すenemyArray.get(enemy)と、結果はObjectになり、メソッドObjectがないため、エラーになります。getName()

public static void enterCastle(ArrayList<Enemy> enemyArray, Random rand)
于 2016-11-16T13:49:40.317 に答える