-1
ここで何が起こっているのか混乱しています。それは単純なことですが、なんらかの理由で私は値ではなく列挙の名前を取得しています。ここでvalueOfで返されない列挙値
は私のクラスである:
この経由して別のクラスでそれを呼び出すpublic class Class1{
public enum SchoolEnum {
01("MIDDLE_SCHOOL");
private String value;
SchoolEnum(String value) {
this.value = value;
}
@Override
public String toString() {
return String.valueOf(value);
}
}
private SchoolEnum schoolEnum = null;
public SchoolEnum getSchoolEnum() {
return schoolEnum;
}
public void setSchoolEnum (SchoolEnum schoolEnum) {
this.schoolEnum= schoolEnum;
}
}
:私は01列挙型の値を取得しようとするたびに
Class1 response = new Class1();
response.setSchoolEnum(Class1.SchoolEnum.valueOf("01"));
、私は単純に01の代わりを取得していますMIDDLE_SCHOOLの値ここで何が起こっているのですか?
私は質問を理解していません。 'SchoolEnum.valueOf'は文字列ではなく' SchoolEnum'を返します。ポイントする文字列が必要な場合は、 'schoolEnum.value'を使用してください。ストリングが必要なときに列挙型はどこにありますか? – yshavit
(「01」は有効な列挙型の名前ではないので、上記のコードは実際にはコンパイルされません...) – yshavit
私はそれを無視していません。投稿されたコードはコンパイルされません。 '01'(ゼロ1)は不正な変数名です。列挙型定数には、OPという意味での値はありません。定数は値です。違法な定数を使っているような属性を定義し、それに 'value'という名前を付けると、それはenum値の" value "_attribute_になります。 Javaチュートリアルでは、学ぶべきenumについてのセクションがあり、変数の命名に関するドキュメントも役立ちます。 –