java.util.Arrays中的$ ArrayList中不能被强制转换为java.util.ArrayList中 [英] java.util.Arrays$ArrayList cannot be cast to java.util.ArrayList
本文介绍了java.util.Arrays中的$ ArrayList中不能被强制转换为java.util.ArrayList中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一类这样的:
public class Questionnaire {
private String questionnaireLibelle;
private List<Question> questions;
.....
}
和我初始化的新的调查,因为这:
And I've initialized a new Questionnaire as this :
Questionnaire q = new Questionnaire(
"Architecture des ordinateurs",
Arrays.asList(
new Question( "1. La partie du processeur spécialisée pour les calculs est :"),
new Question("2. Dans un ordinateur, les données sont présentées par un signal électrique de la forme :"),
new Question("3. Les différents éléments d’un ordinateur (mémoire, processeur, périphériques…) sont reliés entre eux par des:")
)
);
正如你看到我用 Arrays.asList()
,而不是宣布一个新的的ArrayList
。
As you see I used Arrays.asList()
instead of declaring a new ArrayList
.
在其它类我用这个code:
In other class I used this code :
for(Question q : (ArrayList<Question>) request.getAttribute("listQuestions"))
但我得到这个错误该行:
But I got this error for that line :
java.lang.ClassCastException: java.util.Arrays$ArrayList cannot be cast to java.util.ArrayList
我该如何解决呢?
How can I solve this ?
推荐答案
这是因为您在使用你的施法的具体类型。尝试只是这:
This happened because you used the concrete type in your cast. Try just this:
for(Question q : (List<Question>) request.getAttribute("listQuestions"))
既然你有它使用该接口的保证。作为一个风格指南,总是preFER使用该接口的具体类型。
Since you have the guarantee that it uses the interface. As a style guide, always prefer the use of the interface to concrete types.
这篇关于java.util.Arrays中的$ ArrayList中不能被强制转换为java.util.ArrayList中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文