Java基础之通过反射 获取Class 对象,获取对象中的字段,方法,构造函数。

本文介绍了Java反射的基础知识,通过反射可以获取类的Class对象,从而访问类中的字段、方法和构造器。详细阐述了获取Class对象的三种方式,并讲解了如何获取字段的类型和修饰符、方法的名称、参数类型、返回值以及访问修饰符,以及如何获取构造方法及其参数类型。
摘要由CSDN通过智能技术生成

随笔,笔记

能够分析类能力的程序称为反射
可以用来:

  • 在运行时分析类的能力。
  • 在运行时查看对象。
  • 实现通用的数组操作代码。
  • 利用 Method 对象,这个对象很像 C++ 中的函数指针。

学习步骤

反射可以分析类的能力,是怎么分析的呢?是不是可以获得类中的所有信息呢?下面进行学习

  1. 获得 Class 对象
  2. 通过 Class 对象 获得类中 字段。
  3. 通过 Class 对象 获得类中 方法。
  4. 通过 Class 对象 获得类中 构造方法。

获得对应类的 Class 对象

Class 对象里面保存着 我们获取类的字段,方法,构造方法的方式。有三种 获取 Class 对象的方式。

获取 Class 对象 的方式:
第一种:

// 利用 对象 的 getClass 方法获得
ReflectTest test = new ReflectTest(10);
Class a = test.getClass();

第二种

  • 完整类名必须是代表的 类名或 接口名时才能够执行
// 通过完整类名 和 使用 forName() 方法 获得 
String s = "com.test.concurrency.ReflectTest";
Class b = Class.forName(s);

第三种

  • 基本类型和对象都可以。
// .class 的方式获得
Class c = ReflectTest.class;
Class d = int.class;

数组类型的名称:

System.out.println(Double[].class.getName());
// [Ljava.lang.Double;

获取字段,字段类型,修饰符

字段的信息主要是在 Field 类中,所以我们需要通过 Class 对象获取Field 对象。

// 获取所有 公共字段,也就是 public 修饰的,包括 父类中的 公共 字段
Field[] fields = testClass.getFields();
// 获取所有 本类中的字段,包括公共字段和私有字段,不包括 父类中的字段。
Field[] declaredFields = testClass.getDeclaredFields();

如果知道字段的名字可以 获取 指定名字的 字段信息。

Field a = testClass.getDeclaredField("a");
System.out.println
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值