2025年java反射基础笔记

java反射基础笔记Java 架构师学习笔记 java 基础 反射 泛型 一 反射 1 1 什么是反射 Class 是反射的核心 在运行期 创建对象实例 1 2 Class 文件 属性 方法 构造方法 静态方法 普通方法 包路径 类名 1 3 创建 Class 对象的三种方式 1 类 class 2 实例 getClass 3 Class forName 类的全路径 1 4 通过 Class 创建对象

大家好,我是讯享网,很高兴认识大家。



Java架构师学习笔记—java基础—反射、泛型

一、反射

1.1 什么是反射

Class是反射的核心。在运行期创建对象实例。

1.2 Class文件

  • 属性
  • 方法(构造方法、静态方法、普通方法)
  • 包路径
  • 类名

1.3 创建Class对象的三种方式

(1)类.class

(2)实例.getClass()

讯享网

(3)Class.forName(“类的全路径”)

 

1.4 通过Class创建对象

(1)不使用反射

讯享网

(2)使用反射

 

1.5 使用反射获取属性值

(1)getField()。只能获取public的,包括从父类继承来的字段。

 

(2)getDeclaredField()。可以获取本类所有的字段,包括private的,但是不能获取继承来的字段。其要访问private值需要使用setAccessible(true)。

 

(3)其他通过Field.java获取类信息的方法

1.6 反射实战

通过反射实现一个工具类,可以让一个对象属性相同的值赋值给另一个对象。

 

二、泛型

2.1 什么是泛型

字面意思:泛指的类型?在编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型,这种就叫做反省,类似于提供一种模板。泛型使得代码简洁,提高程序健壮性,编码期完成,可读性很java反射基础笔记高。
泛型的本质是类型参数化允许在定义类、接口、方法时使用类型形参,当使用时指定具体类型。所有使用该泛型的地方都被统一化,保证类型一致。如果未指定具体类型,默认是Object类型。集合体系中的所有类都增加了泛型,泛型也主要用于集合

2.2 泛型的使用

泛型类、泛型接口、泛型方法、派生子类。

2.3 通配符 ?
2.3.1 < ? extends Class> 上限
 

java的反射和创建对象的区别 java反射创建泛型对象实例_java的反射和创建对象的区别

2.3.2 < ? super Class> 下限
 

java的反射和创建对象的区别 java反射创建泛型对象实例_父类_02

2.4 类型擦除 & 桥接方法

因为jvm不能识别泛型,所以我们编写的泛型只存在于编码期,编译的时候会将泛型自动转换为Object,这就是类型擦除。
一个子类在继承(或实现)一个父类(或接口)的泛型方法时,在子类中明确指定了泛型类型,那么在编译时编译器会自动生成桥接方法。
Method.isBridge()方法来判断一个方法是否是桥接方法。

 
小讯
上一篇 2024-12-27 14:53
下一篇 2024-12-23 20:08

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/21.html