• Java


    通配符泛型

    Test<SubObject>继承Test<? extends BaseObject>

    Test<SubObject>和Test<T extends BaseObject>无任何关系

    高级别数组可以赋给低级别数组,反之则不可以。

    SubObejct[] objects=...

    BaseObject[] baseObjects=objects;

    java泛型都会擦除泛型类型,泛型类型转换为Object,如果使用extends,则转换为基类类型,不能用instanceof判断类型

    java一般不能使用==判等,需要使用equal,==只比较引用相同

    ?super SubObject 通配符超类型,支持set

    ?extends BaseObject 支持get

    向上造型一个泛型对象的引用

    例如,假设我们有很多箱子,每个箱子里都装有不同的水果,我们需要找到一种方法能够通用的处理任何一箱水果。更通俗的说法,A是B的子类型,我们需要找到一种方法能够将C<A>类型的实例赋给一个C<B>类型的声明。

    为了完成这种操作,我们需要使用带有通配符的扩展声明,就像下面的例子里那样:

    1. List<Apple> apples = new ArrayList<Apple>();
    2. List<? extends Fruit> fruits = apples;

    “? extends”是泛型类型的子类型相关性成为现实:Apple是Fruit的子类型,List<Apple> 是 List<? extends Fruit> 的子类型。

    向下造型一个泛型对象的引用

    现在我来介绍另外一种通配符:? super。如果类型B是类型A的超类型(父类型),那么C<B> 是 C<? super A> 的子类型:

    1. List<Fruit> fruits = new ArrayList<Fruit>();
    2. List<? super Apple> = fruits;
  • 相关阅读:
    两个问题解答、opencv、tensorflow、numpy、matplotlib的基本使用
    图像处理之几何变换
    anaconda一站式环境的搭建(anaconda、tensorflow、opencv)
    python基础--自定义模块、import、from......import......
    python基础--闭包、装饰器
    python基础--迭代器、生成器
    python基础--函数全解析(2)
    CSS弹性布局
    CSS定位布局
    仿写博客园主页
  • 原文地址:https://www.cnblogs.com/czcuestc/p/3516874.html
Copyright © 2020-2023  润新知