2017-06-05 6 views
-1
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) { 
    } 
} 

私にはすでに必要なコンストラクタがありますが、それ以外に何が必要ですか?コンストラクタは未定義ですか?列挙型エラー

+2

で列挙型を定義し、デフォルトのコンストラクタはありません。つまり、コンパイラは引数なしのコンストラクタを提供しません。あなたは1つを提供する必要があります。 – duffymo

答えて

1

どのようにしてenumを定義したいのですか?基本的にあり、これに2つのソリューション:

1.何のパラメータの列挙型を定義していない

public static enum Tipo { 
    ENTRATA, 
    USCITA; 
} 

2.次の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; 
    } 
} 
+0

それは動作します!どうもありがとう –

0

あなたは間違ったenumと書かれています。

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

}

+0

enumに2つの引数コンストラクタがある場合、enumの各変数はオブジェクトとして動作するため、enum変数には2つの引数が含まれています。 –

1

次の2つの引数を取るコンストラクタ、ないデフォルトコンストラクタを書きました。つまり、コンパイラは引数なしのコンストラクタを提供しません。プライベートコンストラクタを提供するか、プライベートコンストラクタを削除する必要があります。

2つの引数を持つプライベートコンストラクタの理由はありません。列挙型のプライベートデータメンバーはありません。

なぜあなたのenumは静的ですか?それを取り除く。

public enum Tipo { 
    ENTRATA, USCITA; 

} 
+0

オペレータがデフォルトのコンストラクタを書くのはかなり難しいことです。コンパイラがないからです。 – Tom

+0

これは彼のコードだと思います。投稿したコードには、引数なしのコンストラクタがあります。私はこのコメントを理解していません。 – duffymo

+0

あなたは書いています* "あなたは2つの引数を取るコンストラクタを書きましたが、デフォルトのコンストラクタはありません。つまり、コンパイラは引数なしのコンストラクタを提供しません"。 OPは自分自身を定義しているので、コンストラクタは**デフォルトの**コンストラクタを作成しません。 OPは** no-arg **コンストラクタを作成する必要があります。 – Tom

関連する問題