List<String> l1 = new ArrayList<String>();
List<Integer> l2 = new ArrayList<Integer>();
System.out.println(l1.getClass() == l2.getClass());
为什么是true?泛型真是很难理解
List<Integer> l2 = new ArrayList<Integer>();
System.out.println(l1.getClass() == l2.getClass());
为什么是true?泛型真是很难理解
楼主【jingulang】截止到2008-07-11 18:06:21的历史汇总数据(不包括此帖):
发帖的总数量:21 发帖的总分数:510 每贴平均分数:24
回帖的总数量:298 得分贴总数量:106 回帖的得分率:35%
结贴的总数量:19 结贴的总分数:450
无满意结贴数:2 无满意结贴分:40
未结的帖子数:2 未结的总分数:60
结贴的百分比:90.48 % 结分的百分比:88.24 %
无满意结贴率:10.53 % 无满意结分率:8.89 %
值得尊敬
List l2 = new ArrayList();
System.out.println( l1==l2 );这就为false
l1==l2 为false表示他们不是同一个对象。
这没有任何问题啊
List<Integer> l2 = new ArrayList<Integer> ();
System.out.println( l1.equals(l2));这个为true
Returns the runtime class of this Object
返回调用Object的运行时的对象List <String> l1 = new ArrayList <String>();
List <Integer> l2 = new ArrayList <Integer>(); l1,l2的实际都是ArrayList的对象,所以返回了true
String a = new String("");
String b = new String("");
System.out.println(a == b);
List<Integer> l2 = new ArrayList<Integer> ();
System.out.println( l1.equals(l2) );这个是true
List<Integer> l2 = new ArrayList<Integer>();
System.out.println(l1.getClass() == l2.getClass());
System.out.println(l1.getClass().equals(l2.getClass()));
都是true
说明11和l2是存在相同的class对象。
这是在运行时得到的信息。带泛型的集合 相互比较的化 貌似只能用equals() 不让用==
这个是在编译的时候就判断出来,他们保存的数据类型不同。
在集合众使用范型一个很重要的作用就是能在编译阶段发现错误。