[Java] 泛型
集合中的泛型
- 只有APHero可以放入
ArrayList<APHero> heros =newArrayList<APHero>();heros.add(newAPHero());
- APHero和ADHero都可以放入
ArrayList<Hero> heros =newArrayList<Hero>();
泛型类
- 定义
publicclassMyStack<T>{LinkedList<T> values =newLinkedList<T>();publicvoidpush(T t) {...}}
- 使用
MyStack<Hero> heroStack =newMyStack<>();heroStack.push(newHero());
通配符
- 解决泛型类对象的引用传递问题
- ArrayList heroList<? super Hero>:Hero泛型或者其父类泛型(下限),可放入,不可取出
- ArrayList heroList<? extends Hero>:Hero泛型或者其子类泛型(上限),可取出,不可放入
- ArrayList heroList<?>:任意泛型,可取出,不可设置内容
转型
- 子类泛型不能转换为父类泛型
- 父类泛型不能转换为子类泛型


浙公网安备 33010602011771号