构造函数未定义?枚举错误

时间:2017-06-05 11:11:34

标签: java compiler-errors

public Tipo getTipo() {
    return this.Importo < 0.0 ? Tipo.USCITA : Tipo.ENTRATA;
}

public int compareTo(Movimento m) {
    if (this.idConto != this.idConto) {
        return this.idConto - this.idConto;
    }
    return this.DataMov.compareTo(this.DataMov);
}

public static enum Tipo {
    ENTRATA,// here i have this error : The constructor Movimento.Tipo() is undefined
    USCITA;// here is the same : The constructor Movimento.Tipo() is undefined


    private Tipo(String string2, int n2) {
    }
}

我已经拥有了我需要的构造函数,还需要编写什么?

3 个答案:

答案 0 :(得分:1)

您编写了一个带有两个参数但没有默认构造函数的构造函数。这意味着编译器不会提供no-arg构造函数。您应该提供一个或删除私有构造函数。

我认为私有构造函数没有理由有两个参数。您的枚举中没有任何私人数据成员。

为什么你的枚举是静态的?删除它。

public enum Tipo {
    ENTRATA, USCITA;

}

答案 1 :(得分:1)

我不确定你想如何定义枚举。基本上有两种解决方案:

<强> 1。不定义参数枚举

public static enum Tipo {
    ENTRATA,
    USCITA;
}

<强> 2。使用参数定义枚举

public static enum Tipo {
    ENTRATA("Entrata", 1),
    USCITA("Uscita", 2);

    private String string;
    private int integer;

    private Tipo(String string, int integer) {
        this.string = string;
        this.integer = integer;
    }
}

答案 2 :(得分:0)

你写错了枚举。

public enum abc {

    ENTRATA("abc", 1),// here i have this error : The constructor Movimento.Tipo() is undefined
    USCITA("xyz", 2);// here is the same : The constructor Movimento.Tipo() is undefined


    private abc(String string2, int n2) {
    }

}