gpt4 book ai didi

Java:类型转换枚举

转载 作者:行者123 更新时间:2023-12-04 20:04:22 26 4
gpt4 key购买 nike

假设我有这个:

class MyClass<E extends Enum<E>> {
private E myEnum;

public MyClass(E myEnum) {
this.myEnum = myEnum;
}

public E getMyEnum() { return myEnum; }
public void setMyEnum(E e) { myEnum = e; }
}

现在我有这些:

Enum<?> someRandomEnum = // Retrieved from somewhere

MyClass<?> enumClassA = new MyClass<>(someRandomEnum); // Cannot infer type arguments

MyClass<?> enumClassB = new MyClass<Object>(someRandomEnum); // Obviously Object is not subclass of an enum

MyClass<?> enumClassC = new MyClass<? extends Enum<?>>(someRandomEnum); // Cannot instantiate the type MyClass<? extends Enum<?>>

我已经尝试了很多方法来转换这个,但我就是放不下 Enum<?>进入 MyClass<?> .有人知道怎么做吗?

最佳答案

实例化原始类型,然后进行转换:

MyClass<?> enumClassA = (MyClass<?>)new MyClass(someRandomEnum);

它可以编译,但会生成以下(无害的)编译器警告:

Unchecked call to 'MyClass(E)' as a member of raw type 'com.foo.bar.SomeRandomEnum'

可以通过添加这个注释来抑制

@SuppressWarnings("unchecked")

包含此代码的方法。

关于Java:类型转换枚举<?>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47031647/

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