testAdd里面可以取到courseToSelect的值,testGet里面為空
private List<Course> courseToSelect;
?? ?public ListTest(){
?? ??? ?this.courseToSelect=new ArrayList<Course>();
?? ?}
?? ?/*
?? ? * 用于往courseToSelect添加備選課程
?? ? */
?? ?public void testAdd(){
?? ??? ?Course cs = new Course("1", "數據結構");
?? ??? ?courseToSelect.add(cs);
?? ??? ?Course[] course = {new Course("2","高數"),new Course("3","英語")};
?? ??? ?courseToSelect.addAll(Arrays.asList(course));
?? ??? ?Course[] course2 = {new Course("4","java"),new Course("5","android")};
?? ??? ?courseToSelect.addAll(3,Arrays.asList(course2));
?? ??? ?//Course temp = courseToSelect.get(3);
?? ??? ?//System.out.println("課程:"+temp.getId()+temp.getName());
?? ?}
?? ?public void testGet(){
?? ??? ?System.out.println("待選課程:");
?? ??? ?for(int i=0;i<courseToSelect.size();i++){
?? ??? ??? ?Course co = courseToSelect.get(i);
?? ??? ??? ?System.out.println("課程:"+co.getId()+":"+co.getName());
?? ??? ?}
?? ?}
?? ?
?? ?public static void main(String[] arge){
?? ??? ?ListTest lt = new ListTest();
?? ??? ?lt.testGet();
?? ??? ?lt.testAdd();
?? ?}
2015-11-12
你先執行的lt.testGet(),此時,courseToSelect里面并沒有值啊,里面的值是在testAdd方法執行的時候才加進去的,你把二個方法的調用順序換下就都有值了