当前位置:网站首页 > Java基础 > 正文

java反射基础笔记



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()方法来判断一个方法是否是桥接方法。

 

版权声明


相关文章:

  • 毕向东java基础视频教程2025-04-08 19:50:00
  • java基础概念包2025-04-08 19:50:00
  • java基础红皮2025-04-08 19:50:00
  • java基础和javase基础2025-04-08 19:50:00
  • cs基础 java2025-04-08 19:50:00
  • 有java基础javascript2025-04-08 19:50:00
  • java表格基础教学2025-04-08 19:50:00
  • 全新java基础案例2025-04-08 19:50:00
  • java基础收获2025-04-08 19:50:00
  • 零基础学java建议2025-04-08 19:50:00