项目中需要用一个List
接多种List<T>
。
这样写List<Object> list = getType1List();
编译不通过,提示获取的类型与指定的类型不匹配。
但是换成List list = getType1List();
就能编译通过了。这是为什么呢?
PHPz2017-04-17 17:26:05
像List list = getType1List();
这种写法,是以前Java没有泛型的时候的写法,这种写法是类型不安全的,由于没有类型参数,所以往里面放什么类型都是可以编译通过的。
有了泛型以后一般都是推荐用泛型来写的,使用类型参数,List<Object> list = getType1List();
就是像这样,编译器会检查放入的类型是否和类型参数一致,不一致的话编译器会报错。