Listlist=new ArrayList<>()和Listlist1=new ArrayList()有什么区别
List list=new ArrayList();在Android Studio里这样写编译器告诉我后面的String可以省略?
泛型在1.7 之后就可以省略了,有泛型就可以更精确一点,所以一般都是带着泛型写的
区别吗就是规定了泛型就必须是这个泛型制定的类型,不写的话默认是Object
List myList=new ArrayList();
myList.add(10);
myList.add("10");
for (int i = 0; i < myList.size(); i++) {
System.out.println(myList.get(i));
}
打印数据是:
10
10
Listlist=new ArrayList<>()这样在<>可以规定后面传入ArrayKist的类型,在取出的时候也就不用强行转化了,因为泛型里面已经规定了。
Listlist1=new ArrayList()这个没有规定的话,任何object都可以传进去,如果在new ArrayList的时候已经知道是存什么了,建议直接用泛型。
写了具体的泛型,添加数据就是强验证(不符合就抛出异常),不写标示弱验证,在添加数据后自动校验,但是如果添加的不是相同类型也会抛出异常!
实战中最好是添加上泛型类型,这样可以提前校验发现问题!当然不写也是可以的
不加<>的话就是不限制List的类型。