迭代Long列表会导致java.lang.ClassCastException

时间:2018-01-28 10:47:40

标签: java loops exception

好的,我真的不知道发生了什么

这是代码

List<Long> idProviders = form.getIdProviders();

for(Long idProvider: idProviders){...}

在foreach期间我有这个例外

java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Long

我无法弄清楚为什么会发生这种情况。 堆栈溢出有一个类似的问题,但没有答案。有人有想法吗?

1 个答案:

答案 0 :(得分:2)

这是一个可以解释您所看到的异常的场景。这是因为将原始List传递给setIdProviders

List raw = new ArrayList();
raw.add ("some string");
YourFormClass form = new YourFormClass ();
form.setIdProviders (raw);
...
List<Long> idProviders = form.getIdProviders();
for(Long idProvider: idProviders) { // here an attempt is made to cast a String 
                                    // to a Long leading to ClassCastException
    ....
}