将c#泛型转换为Java泛型

本文关键字:泛型 Java 转换 | 更新日期: 2023-09-27 18:01:45

如何将下面的c#代码转换为Java?

private T GenericMethod<T>(String value)
{  
    return (T)Enum.Parse(typeof(T), value , true);  
}

将c#泛型转换为Java泛型

无论你在哪里调用你的方法

// 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);    

首先将您的方法签名更改为以下内容:

private <T> T TemplateMethod(String value)