首先,对不起我的英语...

我正在做一个Enum类型,但是我做不到,因为我正在使用tipo(String nombre, short valor)
为什么必须使用tipo(String nombre, int valor)?使用 int 而不是 short 吗?

public enum Tipo {

    // The constructor (String, int) is undefined
    DAT ("DAT", -2);



    private String nombre;
    private short valor;

    tipo(String nombre, short valor){
        this.nombre = nombre;
        this.valor = valor;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public short getValor() {
        return valor;
    }

    public void setValor(short valor) {
        this.valor = valor;
    }
}

最佳答案

试试DAT ("DAT", (short)-2);
您正在将int传递给采用short的构造函数。 Java不会从int自动广播到short,因为可能会丢失数据。

here - primitive type short casting in java对此有很好的解释。

10-06 13:42