Я использую стороннюю библиотеку с классом enum, как показано ниже:
public enum Version {
VERSIONString str="v2.2"; //this i get from a props file
System.out.println("version enum: "+Version.valueOf(str));
0("v2.0"),
VERSIONString str="v2.2"; //this i get from a props file
System.out.println("version enum: "+Version.valueOf(str));
1("v2.1"),
VERSIONString str="v2.2"; //this i get from a props file
System.out.println("version enum: "+Version.valueOf(str));
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. Так что кто сталкивался с этим, подскажите.
enum
декларацию. Вам нужно будет добавить метод для поиска константыenum
, используя ваши свойства значения. - person Robby Cornelissen   schedule 24.07.2015