我的代码如下
private Vector<Vector<Object>> barCode;
private boolean isBarCode(String temp) {
for (Vector<Object> link : barCode) {
if (link.get(0).toString().equals(temp)) {
return true;
}
}
return false;
}
我收到以下错误。
Caused by: java.lang.ClassCastException: java.util.ArrayList incompatible with java.util.Vector
。
请输入任何内容?
答案 0 :(得分:1)
private List<List<Object>> barCode;
private boolean isBarCode(String temp) {
for (List<Object> link : barCode) {
if (link.get(0).toString().equals(temp)) {
return true;
}
}
return false;
}
Use the interface, not the implementation。 Vector
和ArrayList
都实现了List
接口,因此这允许(或任何其他实现)的实例。我还建议您在其余代码中标准化创建ArrayList
个实例,除非您确定需要other implementations的功能。
答案 1 :(得分:0)
您的barCode
包含ArrayList
而不是Vector
。
有人放了错误的容器。您的示例中的数据不足以找出原因和原因。
您可以将for (Vector<Object> link : barCode)
替换为for (ArrayList<Object> link : barCode)
,将Vector<Vector<Object>> barCode
替换为Vector<ArrayList<Object>> barCode
,但我强烈建议您在发现之前不要这样做为什么barCode
包含ArayList
。
之所以发生这种情况,是因为使用了代码原始泛型中的某个地方(Vector
没有通用参数)。