關(guān)于老師講解集合泛型的本質(zhì)一節(jié)
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行代碼寫錯了,應(yīng)該是list1.add("hello");
2017-06-14
就是啊 ?你加錯地方了 ?list1只添加了一個當(dāng)然長度是1了
2017-03-18
list.size()獲取的是元素的個數(shù)
2017-03-18
尷尬,1樓正解
2017-03-18
不好意思,回答錯了,int類型應(yīng)該是占四個字節(jié),但是添加20的時候沒有指定類型,是有java虛擬機(jī)自己決定的
2017-03-18
因為在java中int類型的變量占兩個字節(jié)