问答详情
源自:-

为什么当我使用containsAll初始化Course数组对象发生错误

public void testListContainsAll(){

Course[] course=new Course[2];

course[0].name="C语言";

course[1].name="数据结构";

System.out.println("备选可成中是否包含课程:"+course[0].name+","+course[1].name+":"

+coursesToSelect.containsAll(Arrays.asList(course)));

}

为什么上上面这种写法无法运行,也不报错


public void testListContainsAll(){


Course[] course={new Course("0","C语言"),new Course("1","数据结构")};

System.out.println("备选可成中是否包含课程:"+course[0].name+","+course[1].name+":"

+coursesToSelect.containsAll(Arrays.asList(course)));

}

}

必须这样初始化才能运行呢?

提问者:qq_之恩赫奥丶_0 2016-05-15 13:54

个回答

  • potatofootball
    2016-05-15 20:38:18
    已采纳

    上面的代码,你定义了一个Course的数组,指定容量是2,但是没有指向哪些Course对象就运行运行

    course[0].name="C语言";

    在编译的时候会去读取course第一位的Course这个对象的name属性,然后赋值为C语言,但是你没有事先指定对象,所以运行不了

  • potatofootball
    2016-05-23 11:19:16

    Course[] course=new Course[2];
    course[0] = new Course();//指向一个Course对象
    course[1] = new Course();
    course[0].name="C语言";
    course[1].name="数据结构";