で作業されていませんjava 7にしようとすると、enumクラスでコンパイルエラーが発生します。 enumクラスでは、valueOf()メソッドを定義しているので、Java 7ではコンパイルエラーが発生します。のvalueOf()メソッドは、私は、Java 6を使用していますし、私のアプリケーションは巨大であり、そのJavaの6 で開発された今、私たちは7</p> <p>としてJavaのバージョンをアップグレードしようとしているが、ときに私のJava 7
コード
public enum TestEnum {
TESTONE,TESTTWO, NONE;
public String toString() {
switch(this) {
case TESTONE:
return "Test one";
case TESTTWO:
return "Test two";
case NONE:
return "None";
}
return null;
};
public static TestEnum valueOf(Class<TestEnum> enumType, String value){
if(value.equalsIgnoreCase(TESTONE.toString()))
return TestEnum.TESTONE;
else if(value.equalsIgnoreCase(TESTTWO.toString()))
return TestEnum.TESTTWO;
else if(value.equalsIgnoreCase(NONE.toString()))
return TestEnum.NONE;
else
return null;
}
}
エラー(解決済み)
Name clash: The method valueOf(Class<TestEnum>, String) of type TestEnum has the
same erasure as valueOf(Class<T>, String) of type Enum<E> but does not hide it TestEnum.java
更新
私はのvalueOf()メソッドを変更し、私のファイルをコンパイルしています。
public static TestEnum valueOf(TestEnum enumType, String value){
if(value.equalsIgnoreCase(TESTONE.toString()))
return TestEnum.TESTONE;
else if(value.equalsIgnoreCase(TESTTWO.toString()))
return TestEnum.TESTTWO;
else if(value.equalsIgnoreCase(NONE.toString()))
return TestEnum.NONE;
else
return null;
}
一つには、 'クラス'パラメータが未使用です。そのタイプの唯一のクラスは 'TestEnum.class'なので、もう一つは冗長です。 –
このコードは、TestEnumに 'error:name clash:valueOf(Class、String)を、Enumに valueOf(Class 、String)を同じ消しゴムを持ちますが、' -source 1.6'でコンパイルしたときに、 –
EJP
@AndyTurnerありがとうございました。Class <>とその動作を削除しました。 –