gpt4 book ai didi

java - Java 中的通用枚举

转载 作者:搜寻专家 更新时间:2023-10-31 20:22:01 26 4
gpt4 key购买 nike

我有一个基本的配置类,它提供了所有可能的键和枚举中相应值类型的类型,如下所示:

public class Configuration {
public static enum Key {
FIRST_KEY("actual key 1", Long.class),
ANOTHER_KEY("actual key 2", Integer.class)

public final String value;
public final Class type;

Key(String value, Class type) {
this.value = value;
this.type = type;
}
}
}

我想做的是编写一个方法,从字符串中解析给定键的值并将该值作为适当的类型返回。基本上是这样的:

public <T> T getValue(Key<T> key, String valueStr);

这种尝试在方法声明处已经失败,因为 Java 中的枚举似乎不能有类型参数。关于如何实现与此类似的东西有什么想法吗?

最佳答案

你可以简单地

public <T> T getValue(Key key, String valueStr);

虽然它缺少编译时检查,所以这将通过编译

Short value = getValue(FIRST_KEY, string);  // should be Long

更好的答案?不要使用 enum !制作Key<T>一个普通的类(class)。

public static class Key<T>
{
public static final Key<Long> FIRST_KEY
= new Key("actual key 1", Long.class);
...

public final String value;
public final Class<T> type;

Key(String value, Class<T> type) {
this.value = value;
this.type = type;
}
}

关于java - Java 中的通用枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12604423/

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