Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 构造函数未定义?枚举错误 public Tipo getTipo(){ 返回此.Importo_Java_Compiler Errors - Fatal编程技术网

Java 构造函数未定义?枚举错误 public Tipo getTipo(){ 返回此.Importo

Java 构造函数未定义?枚举错误 public Tipo getTipo(){ 返回此.Importo,java,compiler-errors,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; }

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

你的枚举写错了

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) {
    }
}

}

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

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

为什么枚举是静态的?去掉那个

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) {
    }

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

1。定义无参数枚举

public enum Tipo {
    ENTRATA, USCITA;

}
2。使用参数定义枚举

public static enum Tipo {
    ENTRATA,
    USCITA;
}

如果枚举中有两个参数的构造函数,则枚举变量包含两个参数,因为枚举中的每个变量都充当一个对象。您编写的构造函数包含两个参数,但没有默认构造函数。这意味着编译器不会提供无参数构造函数。你应该提供一个。OP编写默认构造函数是一个很大的挑战,因为他不是编译器。我想这是他的代码。我发布的代码将有一个无参数构造函数。我不理解这个评论。你写了“你写了一个包含两个参数的构造函数,但没有默认构造函数。这意味着编译器不会提供一个无参数的构造函数。”但情况正好相反。构造函数不会创建默认构造函数,因为OP定义了自己的构造函数。所以OP需要创建无参数构造函数。默认值和无参数是一样的。我知道他需要什么。这就是我所说的。它们做的是一样的(如果“no arg”的主体是空的),但它们不一样。
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;
    }
}