一、泛型之前
1、当一个对象放入集合时,集合不会记住此对象的类型,当再次从集合中取出此对象时,该对象的编译类型变成了 Object。
2、运行时需要人为地强制转换类型到具体目标,实际的程序绝不会这么简单,一个不小心就会出现 java.lang.ClassCastException,即类型转换异常。
泛型是什么并不会对一个对象实例是什么类型的造成影响,所以,通过改变泛型的方式试图定义不同的重载方法也是不可以的。
尽量使用精确的类型定义泛型,除非必要,否则不要写一个接口或者父类上去。
static 变量、static 块、static 方法不认识泛型。总结起来就是一句话:静态资源不认识泛型。
泛型类
泛型方法:
public class test {
public <K, V> void fun(K k, V v) {
...
}
}
没有泛型数组,如 A<String>[] a = new A<String>[2];
可以用 ArrayList 代替,就可以使用泛型。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于