编写构造函数,从不同的类中获取枚举参数

时间:2015-11-01 17:13:57

标签: java constructor enums

我正在尝试为游戏编程AI,我希望能够为玩家设置不同的模式。

这是我在Type.java中的枚举:

public enum Type {

    Human,Random,Minimax

}

这是player.java中的构造函数,用于设置播放器的类型:

public Player(String name, Type e ) {
    this.name = name;
    this.Type = e;
}

现在Eclipse说“类型无法解析或不是字段”。 我该怎么办?两个文件都在同一个包中。

3 个答案:

答案 0 :(得分:2)

  

现在Eclipse说“类型无法解析或不是字段。”

这告诉你它遇到的问题是行中的this.Type = e; // ^---- This one

Player

如果你还没有在private Type type; 中声明一个字段:

this.type = e;

...然后确保在构造函数中使用该字段的名称:

name

注意我在字段名称中使用了小写字母。这是Java中压倒性的约定,并且与您对字段$GLOBALS所做的相匹配。

答案 1 :(得分:0)

您的播放器类似乎没有字段类型。

这样的事情会起作用

class Player {

    String name;
    Type e;

    public Player(String name, Type e) {
        this.name = name;
        this.e = e;
    }
}

答案 2 :(得分:0)

Main.java:

public class Main
{
    public static void main(String[] args)
    {
       Player player = new Player( "test", Type.Human );
       System.out.println( player.toString()  );
    }
}

Type.java

public enum Type {
    Human,  Random, Minimax
 }

Player.java

public class Player
{
  private String name;
  private Type type;

  public Player(String name, Type e)
  {
     this.name = name;
     this.type = e;
  }

  public String toString()
  {
     return name + " " + type.toString();
  }
}

如果你编译并运行它,toString将返回:

test Human