为什么数组会出错?

时间:2015-02-09 18:33:49

标签: java

为什么在这里: arrayList = {firstName,lastName,ID,examValue,score}; 给出错误?该方法应该调用一个构造函数,它是Exam(String firstName,String lastName,int ID,String examType,int score),那么这个方法有什么问题呢?提前谢谢!

public static Exam[] readAllExams(Scanner s)
    {
        Exam[] arrayList = null;
        String firstName = "";
        String lastName = "";
        int ID = 0;
        String examValue = "";
        int score = 0;

        while(s.hasNext())
        {
            if(s.hasNextLine())
            {
                firstName = s.next();
                lastName = s.next();
            }
            else if(s.hasNextInt())
            {
                ID = s.nextInt();
            }
            else if (s.hasNextLine())
            {
                examValue = s.nextLine();
            }
            else if (s.hasNextInt())
            {
                score = s.nextInt();
            }

        }

        arrayList = {firstName, lastName, ID, examValue, score};
        return arrayList;


    }

3 个答案:

答案 0 :(得分:0)

首先,您无法将数组初始化为Exam[] arrayList = null;,然后将值重新分配给长度为5的数组。

其次,您的ArrayList是不同对象和基元的列表(Stringint),与指定的类型Exam[]不匹配。

更改分配给Exam列表的对象类型,或确保列表中的所有对象都是Exam类型。

答案 1 :(得分:0)

您可以尝试使用arrayList = new Exam[]{ /* stuff */ }。您尝试使用的语法仅在数组声明中有效。

此外,您无法使用不同基本类型的变量初始化类型为Exam的数组。

答案 2 :(得分:0)

这里Exam[] arrayList = null;你说数组是类型考试然后你说 arrayList = {firstName, lastName, ID, examValue, score};数组是String类型,其中2个语句相互矛盾