什么叫泛型化(generified type)呢?就以我上面贴的那段代码为例。假如它是Java 5以前创建的类,那时候一定是这么写的:
public class SomeClass { List getListOfPropertyName() { ... } }在Java 5以后,假如它一直没有改成泛型的版本,那么调用它的人必须显式地做类型转换才能获得List<String>:
SomeClass obj = new SomeClass(); List<String> list = (List<String>) obj.getListOfPropertyName();假如后来这个类型后来被泛型化了:
public class SomeClass<T> { // 类型名字不变 List<String> getListOfPropertyName() { ... } }调用的人还不知道它已经泛型化了,因此还在使用raw type。那么编译器就仍然按照泛型化之前的方式,提醒你显式类型转换。
作者:GuoGin 链接:https://www.zhihu.com/question/58800149/answer/159649487 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。