gpt4 book ai didi

java - 如何给定类名 "valueOf"枚举?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:04:14 24 4
gpt4 key购买 nike

假设我有一个名为 Animal 的简单枚举,定义为:

public enum Animal {
CAT, DOG
}

我有一个像这样的方法:

private static Object valueOf(String value, Class<?> classType) {
if (classType == String.class) {
return value;
}

if (classType == Integer.class) {
return Integer.parseInt(value);
}

if (classType == Long.class) {
return Long.parseLong(value);
}

if (classType == Boolean.class) {
return Boolean.parseBoolean(value);
}

// Enum resolution here

我可以在此方法中放入什么以返回值为 classType 的枚举实例?

我看过尝试:

    if (classType == Enum.class) {
return Enum.valueOf((Class<Enum>)classType, value);
}

但这行不通。

最佳答案

您的classType 不是Enum,而是Animal。所以,

if (classType.isEnum()) {
return Enum.valueOf(classType, value);
}

应该可以。此外,您应该使用 equals() 而不是 == 来比较类实例(尽管 == 在实践中会起作用,如果有只有一个类加载器)。

关于java - 如何给定类名 "valueOf"枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3003528/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com