java 反射-(reflect)

本文详细介绍了Java反射机制的基本概念及其实现方式。通过三种不同方法加载类并解析类的构造函数、方法和字段,展示了如何动态获取类信息及调用其方法。同时,还涉及了如何处理私有成员及使用暴力反射。

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


1、首先是加载类

//方法1
Class clazz = Class.forName("com.reflect.Person");

//方法2
Class clazz1 =new Person().getClass();

//方法3
Class clazz2 =Person.class;


2、解剖类-(构造函数、方法、字段)

//加载类,获得类的字节码
Class clazz = Class.forName("com.reflect.Person");

//解剖类
Constructor c= clazz.getConstructor(null);
Person p=(Person) c.newInstance(null);

Constructor c1=clazz.getConstructor(String.class);//获取构造函数
Method m=clazz.getMethod("run", null);//获取方法
Field f=clazz.getField("name2");//获取字段

Person p1=(Person) c1.newInstance("nnnn");


Constructor c3= clazz.getDeclaredConstructor(String.class,int.class);//private--私有的获取方法
c3.setAccessible(true);//暴力反射--所以的私有构造函数,方法,字段,都需要暴力反射
Person p3=(Person) c3.newInstance("p",1);


下边jar包中有详细的说明
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值