關于老師講解集合泛型的本質一節
package?com.imooc.Class; import?java.lang.reflect.Method; import?java.util.ArrayList; public?class?Genericity?{ ????public?static?void?main(String[]?args)?{ ????????//?TODO?Auto-generated?method?stub ????????ArrayList?list?=?new?ArrayList(); ????????ArrayList<String>?list1?=?new?ArrayList<String>(); ????????list.add("Hello"); ????????//list1.add(20); ????????Class?c1?=?list.getClass(); ????????Class?c2?=?list1.getClass(); ????????System.out.println(c1==c2); ????????System.out.println(list1.size()); ????????try?{ ????????????Method?m?=?c2.getMethod("add",?Object.class); ????????????m.invoke(list1,?20); ????????????m.invoke(list1,?"Hello");//老師沒有這句且返回list1的size是2。我自己加上返回的是2 ????????}?catch?(Exception?e)?{ ????????????e.printStackTrace(); ????????????//?TODO:?handle?exception ????????} ????????System.out.println(list1.size()); ????} }
老師不是往list1中只加了一個20么?為什么最后list1的size是2呢?
2017-03-14
第12行代碼寫錯了,應該是list1.add("hello");
2017-06-14
就是啊 ?你加錯地方了 ?list1只添加了一個當然長度是1了
2017-03-18
list.size()獲取的是元素的個數
2017-03-18
尷尬,1樓正解
2017-03-18
不好意思,回答錯了,int類型應該是占四個字節,但是添加20的時候沒有指定類型,是有java虛擬機自己決定的
2017-03-18
因為在java中int類型的變量占兩個字節