枚举值为构造函数类JAVA

时间:2017-04-28 03:15:09

标签: java eclipse constructor enums

您好我在创建我的数据库表的bean,但是我有这个小问题我无法将ENUM值传递给构造函数,我解决了它但是当我尝试设置值时它说错误; 这是我的代码

public class HorariosBean {
    private Integer idHorario;
    private String dia;
    private Integer hora;
    private enum estado {DISPONIBLE, NODISPONIBLE};
    private Integer depasId;

    // this is the first thing I fix for pass the enum
    public HorariosBean(Integer idHorario, String dia, Integer hora, estado estate, Integer depasId) {
        this.idHorario = idHorario;
        this.dia = dia;
        this.hora= hora;
        this.estado = estate; //error is here says "estado cannot be resolved or is not a field"
        this.depasId = depasId;
    }
}

我无法改变类型,因为我有其他带枚举的表,这意味着我应该改变一切

2 个答案:

答案 0 :(得分:2)

private enum estado {DISPONIBLE, NODISPONIBLE};表示您声明了enum,而不是变量。

所以添加新行:

private estado yourEnum;

并更新构造函数:

this.yourEnum = estate;

答案 1 :(得分:0)

另一个答案是正确的,但还有另一个问题。

你不能使用声明为 private 的枚举。您会看到,您希望将该枚举的实例传递给该类的构造函数。

但是没有其他类能够使用该枚举,例如在 new HorariosBean 语句中,因为枚举是私有的。

超越:不要欺骗自己相信经常犯错误是解决问题的一个很好的理由。换句话说:如果你反复犯同样的错误,那么你必须触摸所有代码。因此,避免代码重复非常重要。