12 2017 档案
摘要:因为可以向Java SE5之前的代码传递泛型容器,所以旧式代码仍有可能破坏你的容器。Java SE5中有一组便利工具,可以解决这种情况下类型检查的问题。 它们是静态方法checkedCollection(); checkedList(); checkedMap(); checkedSet(); ch
阅读全文
摘要:自限定 自限定将强制泛型当做自己的边界参数来使用。自限定所做的,就是要求在继承关系中,像下面这样使用这个类: class A extends SelfBounded<A> {} 它的意义是可以保证类型参数必须与正在被定义的类相同。自限定只能强制作用于继承关系。如果使用自限定,就应该了解这个类所用的类
阅读全文
摘要:无界通配符<?>很容易和原生类型混淆。 以List为例: List表示持有任何Object类型的原生List,其实就等价于List<Object> List<?>表示某种具有特定类型的非原生List(同构集合),只是我们不知道它的具体类型是什么,所以我们就不允许往里set数据 看下面例子: 捕获转换
阅读全文
摘要:(1) <T extends A> 因为擦除移除了类型信息,而无界的泛型参数调用的方法只等同于Object。但是我们可以限定这个泛型参数为某个类型A的子集,这样泛型参数声明的引用就可以用类型A的方法了,语法为<T extends A>。下面是一个例子: (2) <? extends T> / <?
阅读全文

浙公网安备 33010602011771号