如何将以下C#代码转换为Java?
private T GenericMethod<T>(String value)
{
return (T)Enum.Parse(typeof(T), value , true);
}
答案 0 :(得分:4)
无论您何处致电您的方法:
// C#
MyEnum value = TemplateMethod<MyEnum>("AnEnumValue");
在Java中你可以这样做:
// Java
MyEnum value = MyEnum.valueOf("AN_ENUM_VALUE");
如果您担心案例,并且如果您遵循使用大写枚举值的Java约定,那么您可以这样做:
MyEnum value = MyEnum.valueOf(anEnumValue.toUpperCase());
将其封装在方法中:
static <E extends Enum<E>> E parse(Class<E> enumType, String value) {
return (E)Enum.valueOf(enumType, value.toUpperCase());
}
这样称呼:
MyEnum value = parse(MyEnum.class, anEnumValue);
答案 1 :(得分:1)
首先将方法签名更改为以下内容:
private <T> T TemplateMethod(String value)