gpt4 book ai didi

java - 在java中,用于Enum.valueOf()的正确类泛型是什么?

转载 作者:行者123 更新时间:2023-12-03 07:55:51 24 4
gpt4 key购买 nike

我有这样的设置

interface A {}

enum B implements A {
TEST;
}

class C<T extends Enum<? extends A>> {
public C(T t) {
T test = (T) T.valueOf(t.getClass(), "TEST");
}
}

这有效......但是理想情况下我想将 C 更改为类似

class C<T extends Enum<? extends A>> {
public C(Class<T> t) {
T test = (T) T.valueOf(t, "TEST");
}
}

但是执行第二个操作无法编译。这里使用的正确的 Class<> 泛型是什么? Class<? extends Enum>有效,但随后我收到有关原始泛型的警告。使用Class<? extends Enum<?>>让我回到一个错误。我知道我可以使用第一个选项并调用 getClass() ,或者甚至只是抑制原始泛型的警告,但我想了解正确的泛型类型是什么...或者我只是在 Java 泛型 hell 中,并且在不抑制警告的情况下没有正确的答案吗?

最佳答案

您可以使用&来确保T是一个enum并实现A:

class C<T extends Enum<T> & A> {
public C(Class<T> t) {
T test = Enum.valueOf(t, "TEST");
}
}

关于java - 在java中,用于Enum.valueOf()的正确类泛型是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76069867/

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