Java 编写构造函数时,从其他类获取枚举参数

Java 编写构造函数时,从其他类获取枚举参数,java,constructor,enums,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说“类型无法解析或者不是字段。” 我该怎么办?两个文

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

下面是我在Type.java中的枚举:

public enum Type {

    Human,Random,Minimax

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

public Player(String name, Type e ) {
    this.name = name;
    this.Type = e;
}
现在Eclipse说“类型无法解析或者不是字段。” 我该怎么办?两个文件都在同一个包中

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

这说明它的问题在于行中的
类型

this.Type = e;
//   ^---- This one
如果尚未在
Player
中声明字段,请执行以下操作:

private Type type;
…然后确保在构造函数中使用该字段的名称:

this.type = e;


注意,我对字段名使用了小写。这是Java中压倒性的惯例,与您对字段
name

所做的操作相匹配。您的player类中似乎没有字段类型

像这样的东西会有用的

class Player {

    String name;
    Type e;

    public Player(String name, Type e) {
        this.name = name;
        this.e = e;
    }
}
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

在你的问题中添加玩家类代码。如果你正在经历这次日食,那么在错误所在的行中应该有一个错误指示。也许你还可以利用Eclipse的“快速修复”功能,它可能不会一针见血,但会让你知道问题所在。谢谢,这对我很有帮助!谢谢,这对我有帮助!