0

我知道我的用例看起来很傻,但这是解释我需要什么的最简单方法,所以就这样吧

假设我想编写以下愚蠢的通用方法:

void toString(Object o);

Object fromString(String enumObject,Class<Enum> classOfTheObject);

给定:

public enum PositionType 
{
    B,
    F,
    L,
    R
}

和 :

PositionType ptype = PositionType.B;

我该如何继续并实施这些方法,以便:

fromString(toString(ptype),PositionType.class).equals(PositionType.B);

会返回真实吗?

我尝试查看java反射教程,但我仍然没有找到如何解决它......

请注意,实现不能依赖于特定的枚举类型,它可以是任何枚举类型,但是对于我需要的,我们可以将自己限制为仅枚举对象。

4

1 回答 1

1

您可以通过许多解决方案来实现这一点,这是其中之一(我写了严格的最小值):

String toString(Object o) {
   return ((Enum) o).name();
}

<T extends Enum<T>> Object fromString(Class<T> enumType, String o) {
   return Enum.valueOf(enumType, o);
}
于 2013-07-06T22:54:10.220 回答