【发布时间】:2016-07-02 17:46:42
【问题描述】:
我使用 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());
【问题讨论】:
-
你能展示你的代码吗?答案是,“
List<String>不是List<Object>”,但更完整的解决方案还包括帮助您解决所面临问题的方法。 -
扩展 Makato 所说的,并不是所有的对象都是字符串,所以你会得到一个 ClassCastException
-
@cricket_007:我认为他们试图做的是
(List<Object>) someListTypeStringInstance,而不是相反。 -
目前还不清楚您是如何获得
ClassCastException的。在将List<String>转换为List<Object>时,您永远不会得到ClassCastException,因为在运行时没有区别。我们需要查看您的代码! -
我认为你需要添加
A<T>和T value而不是Object value,然后是public T getAValue()和只是return value,然后实例化A<String> a = new A<String>()
标签: java string object arraylist