以下に示す列挙型クラスを持つサードパーティのライブラリを使用しています。
public enum Version {
VERSION_2_0("v2.0"),
VERSION_2_1("v2.1"),
VERSION_2_2("v2.2")
private final String urlElement;
Version(String urlElement) {
this.urlElement = urlElement;
}
public String getUrlElement() {
return this.urlElement;
}
public boolean isUrlElementRequired() {
return null != this.urlElement;
}
}
私はこの列挙型に渡したい小道具ファイルからバージョンを読んで、次のようなそれぞれの列挙型定数を取得しています:
String str="v2.2"; //this i get from a props file
System.out.println("version enum: "+Version.valueOf(str));
私は例外を下回っています:
Exception in thread "main" java.lang.IllegalArgumentException: No enum constant com.pkg.Version.v2.2
「v2.2」は単一の文字列として扱われていないようです。文字列のドットをエスケープしていくつかの方法を試しましたが、どれも機能していません。私はJDK1.7を使用しています。誰でもこれに遭遇したので、アドバイスしてください。