15.10.4 捕获转换

  • f2(Holder<?> holder)的参数holder可以捕获到原生类型中的参数类型,但是自己却不知道;
  • f2(Holder<?> holder)捕获到的参数类型可以转换成f1(Holder<T> holder)中的确切类型;
  • 也就是说,无界通配符可以捕获到参数类型,但是不转换就不知道参数类型是什么;
package chapter15._10._4;

import chapter15._10._1.Holder;

public class CaptureConversion {

    static <T> void f1(Holder<T> holder) {
        T t = holder.get();
        System.out.println(t.getClass().getSimpleName());
    }

    static void f2(Holder<?> holder) {
        f1(holder);
    }

    @SuppressWarnings("unchecked")
    public static void main(String[] args) {
        Holder raw = new Holder<Integer>(1);
//        f1(raw);
        f2(raw);
        Holder rawBasic = new Holder();
        rawBasic.set(new Object());
        f2(rawBasic);
        Holder<?> wildcarded = new Holder<Double>(1.0);
        f2(wildcarded);
    }

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 2.简单泛型 -********Java泛型的核心概念:告诉编译器想使用什么类型, 然后编译器帮你处理一切细节 2...
    CodingHou阅读 396评论 0 0
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 13,877评论 0 38
  • sudo apt-get install php5.6-curl
    Do_More阅读 142评论 0 0
  • 序列化简单的说就是将运行时的对象状态转换成二进制,然后进行保存到流,内存或者通过网络传输给其他端。 在Androi...
    海是倒过来的天_67f2阅读 277评论 0 0
  • 我环手抱膝,圈起一个安全的怀抱 爱上另一个的自己.收录中 卷一水仙花的自恋 水仙花,孤傲的花朵。 他是除了自己以外...
    花开的落寞阅读 438评论 2 8