gpt4 book ai didi

java - 当我执行 ObjectList = StringList 时 ClassCastException

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

我使用方法Arrays.asList()创建了列表用一根绳子。然后我把它分配给List<Object> ,然后我得到 ClassCastException。我做错了什么?

代码是:

class A {
Object value;

public <T> T getAValue() {
return (T) value;
}
}

然后我就这么做了

A a = new A();
a.value = "abc";

List<Object> list = Arrays.asList(a.getAValue());

最佳答案

如果您确实无法在A上添加类型信息(即使用 class A<T> ),然后简单的转换就可以解决您的问题,如下所示( demo ):

A a = new A();
a.value = "abc";
List<Object> list = Arrays.asList((Object) a.getAValue());

这是安全的,因为一切都是 Object ,但干净的方法是使用 A 上的类型信息,如另一个答案中所述(demo):

A<String> a = new A<String>();
a.value = "abc";
List<String> list = Arrays.asList(a.getAValue());

另请注意,您应该对 value 使用 setter (即没有 a.value = "..." )。

<小时/>

一些阅读:https://docs.oracle.com/javase/tutorial/java/generics/

关于java - 当我执行 ObjectList = StringList 时 ClassCastException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36042587/

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