Java反射——Type接口详解

Java反射——Type接口详解

java 反射admin2020-06-30 16:24:2611A+A-

  授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!

  授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。

  手动调用指定Dubbo接口(三)----GenericService篇

  Spring中InitializingBean和SmartInitializingSingleton的区别

  MyBatis源码学习(六)——在代码中调用Mapper接口时发生了什么

  kekayi:浏览器地址栏输入:访问的是Jeecg-Boot 后台服务API接口文档怎么办?

  Type 是 Java 编程语言中所有类型的公共高级接口。它们包括原始类型、参数化类型、数组类型、类型变量和基本类型。

  不知道为什么在文档中介绍Type接口的组成时,没有包含WildcardType接口。

  在不同的场景下,java会使用上面五种实现类的其中一种,来解释要描述的类型。

  我们需要关注的就是在类中定义的test方法,这个方法的7个参数基本上涵盖了Type能用到的所有类型。

  所以在main方法中我们用反射得到了这个test方法,然后用method.getGenericParameterTypes()方法得到了test方法的所有参数类型,这是一个Type数组,数组中的每一个元素就是每个参数的类型,java为每一个Type选择了一个Type的实现类。

  那么java会选择Class来作为这个Type的实现类,我们甚至可以直接把这个Type强行转换类型为Class。

  这些类基本都有一个特点:基本和泛型无关,其他4种Type的类型,基本都是泛型的各种形态。

  当需要描述的类是泛型类时,比如List,Map等,不论代码里写没写具体的泛型,java会选择ParameterizedType接口做为Type的实现。

  WildcardType接口有getUpperBounds()方法,得到的是类型的上边界的Type数组,实际上就是类型的直接父类,也就是extends后面的类型。显然在当前java的设定中,这个数组只可能有一个元素,因为java现在只能extends一个类。如果实在没写extends,那他的直接父类就是Object。

  WildcardType接口有getLowerBounds()方法,得到的是类型的下边界的Type数组,有super关键字时可能会用到,经测试不会得到类型的子类,而是只得到super关键字后面的类型,如果没写super关键字,则返回空数组。

  Type的最后一种实现形式是TypeVariable接口,这种实现形式是在泛型类中使用的。

  目录一,对象头1,Mark Word2,指向类的指针3,数组长度二,实例数据三,对齐填充字节

  对象保存在内存中时,由以下三部分组成:1,对象头2,实例数据3,对齐填充字节一,对象头

  的对象头由以下三部分组成:1,Mark Word2,指向类的指针3,数组长度(只有数组对象才有) 1,Mark WordMar......

  1. 相关概念: 指的是可以于运行时加载、探知、使用编译期间完全未知的类。 程序在运行状态中,可以动态加载个只有名称的类,对于任意一个已加载的类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意_个方法和属性 加载完类之后,在堆内存中,就产生了一个 Class类型的对象(一个类只有—个Class对象),这个对象就包含了完整的类的结构信息我们可以通过这个对象看到类的结构。这个对象就像一面镜子,透过这个镜子看到类的结构,所以,我们形象的称...

  之前做过一个插件,综合了移动MM,移动和游戏,沃商店等一些计费SDK。将这些计费SDK提供的

  。通过后台配置,来让游戏使用某种计费SDK。游戏开发商接入计费的时候,只需要调用插件提供的一套

  即可。因为不可能保证游戏会包含所有的计费SDK的代码,所以插件内部只能利用

  来获取类,获取方法进行调用是比较简单的。但是有个问题困扰了我很久:计费SDK都有提...

点击这里复制本文地址 免责声明:本站内容由程序自动采集于互联网,无人工干预,只作交流和学习使用,本站不储存任何资源内容,如有侵权请联系qq邮箱798244092@qq.com立刻删除,谢谢!

支持Ctrl+Enter提交

java教程 © All Rights Reserved.  
Powered by 多多资源网 Themes by 多多资源网
联系我们| 关于我们| 留言建议| 网站管理