Type类型

轻触开源(一)-Java泛型Type类型的应用和实践

柔情痞子 提交于 2019-12-30 19:14:32
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 转载请注明出处:https://my.oschina.net/u/874727/blog/747427 Q:1025250620 在很多Java的开源项目中都用到Java的泛型。比如Gson,就可以通过TypeToken<T>里的泛型参数来指定生成的类型。鉴于网上关于泛型的文章并不多,为了非墨后面项目研究的需要,非墨开始研究这部分的API。首先我们先来看一下在Java语言中泛型的例子: public class MyTest<T1,T2 extends Number> { T1 member; public <T> void method(T m) {} } 上述代码中的标志:T1,T2,T都是泛型类型。Java的泛型检查发生在编译期,但是会在编译后的JVM字节码中增加类型判断的语句。为了方便大家理解这句话我们用一段代码测试一下: List<String> list = new ArrayList<>(); try { Method m = list.getClass().getDeclaredMethod("add", new Class[]{Object.class}); m.invoke(list, 1); m.invoke(list, 2); } catch (Exception e) { System