Vir*_*721 1 java generics enums templates
我需要创建一个通用函数来解析字符串中的枚举,但我不确定要使用的语法。
这不起作用,但它说明了我想做的事情:
public <E extends Enum<E>> getEnum( some params, <E extends Enum<E>> defaultVal )
{
// Some stuff
return E.valueOf( enumAsString );
}
Run Code Online (Sandbox Code Playgroud)
请问我的语法有什么问题吗?谢谢 :)
编辑:另外我该如何使用这个?在 C++ 中我会做SomeEnum e = getEnum<SomeEnum>( ... );
编辑 :
让
enum EnumA
{
A_A, A_B, A_C
};
enum EnumB
{
B_A, B_B, B_C
};
Run Code Online (Sandbox Code Playgroud)
我想要做 :
String enumAsStr = "A_B";
EnumA ea = getEnum< EnumA >( enumAsStr, "A_A" );
enumAsStr = "B_C";
EnumB eb = getEnum< EnumB >( enumAsStr, "B_A" );
Run Code Online (Sandbox Code Playgroud)
你可以做类似的事情
public <E extends Enum<E>> E getEnum( String text, Class<E> klass){
return Enum.valueOf(klass, text );
}
Run Code Online (Sandbox Code Playgroud)
因此,例如如果有一个枚举 Letter
public enum Letter { A, B, C}
Run Code Online (Sandbox Code Playgroud)
你可以这样使用它:
Letter someLetter = getEnum("A", Letter.class);
System.out.println(someLetter); //A
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1013 次 |
| 最近记录: |