原生态类型"/>
第23条:请不要在新代码中使用原生态类型
术语:
泛型(generic type):声明中具有一个或者多个类型参数的类或者接口的统称。
原生态类型(raw type):不带任何实际类型参数的泛型名称。
每个泛型都存在一个原生态类型,原生态类型就像从类型声名中删除了所有泛型信息一样。考虑如下代码:
// Now a raw collection type - don't do this!/*** My stamp collection, Contains only Stamp instance.*/
private final Collection stamps = ...;
如果不小心将一个coin放进了stamp集合中,编译和运行将照常进行。
// Erroneous insertion of coin into stamp collection
stamps.add(new Coin( ... ));
在编译和运行时这将不会产生任何错误,但是,一旦从集合中取元素并转换成stamp的时候就会抛出ClassCastException
//Now a raw interator type - don't do this !
for (Iterator i = stamps.iterator(); i.hasNext();) {Stamp s = (Stamp) i.next(); // Throws ClassCastException... // Do something with the stamp
}
为了
更多推荐
第23条:请不要在新代码中使用原生态类型
发布评论