JAVA的反射

主要内容:定义用途反射机制的相关类反射Class类反射属性反射构造方法反射方法总结定义JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。用途在日常的第三方应用开发过程中,经常会遇到某个类的某个成员变量、方法或是属性是私有的或是只对系统应用开放...
摘要由CSDN通过智能技术生成

定义

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。

用途

在日常的第三方应用开发过程中,经常会遇到某个类的某个成员变量、方法或是属性是私有的或是只对系统应用开放,这时候就可以利用Java的反射机制通过反射来获取所需的私有成员或是方法。当然,也不是所有的都适合反射,之前就遇到一个案例,通过反射得到的结果与预期不符。阅读源码发现,经过层层调用后在最终返回结果的地方对应用的权限进行了校验,对于没有权限的应用返回值是没有意义的缺省值,否则返回实际值起到保护用户的隐私目的。

反射机制的相关类

与Java反射相关的类如下:
在这里插入图片描述

反射Class类

lass Class 类的实例表示正在运行的 Java 应用程序中的类和接口。

Class是反射的源头,一旦加载类,就会存在一个当前类的Class对象,Class只有一个,存着这个类的所有内容,如果一旦获取到一个类的Class对象,就能够对这个进行任何操作。

如何获取反射的源头,一个类的Class对象:

  1. 类名.class
  2. 对象.getClass()
  3. Class.forName(“报名+类名”)
  • 获得类相关的方法
    在这里插入图片描述

示例

public class ReflectDemo01 {
   
	public static void main(String[] args) throws ClassNotFoundException{
   
		//1.类名.class
		Class<String> cls1=String.class;
		//2.对象.getClass()
		Class cls2="博主最帅".getClass();
		//3.Class.forName("报名+类名")  ---推荐
		Class cls3=Class.forName("java.lang.String");
		System.out.println(cls1);
		System.out.println(cls1==cls2);
		System.out.println(cls1==cls3);
		
		//获取父类的Class对象
		Class cls4=cls1.getSuperclass();
		System.out
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值