java.util.Arrays中的$ ArrayList中不能被强制转换为java.util.ArrayList中 [英] java.util.Arrays$ArrayList cannot be cast to java.util.ArrayList

查看:703
本文介绍了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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆