Java反射 操作Constructor、Method、Field

前面已经介绍,通过反射获取Class中各种元素

链接:Java反射 获取Class及Class对应信息

看之前一定要看链接里获取Class对应信息,因为有很多混淆的获取方法

本篇是简单介绍通过

Constructor(构造器)创建对象

Method(方法)调用方法

Field(字段)操作成员变量

Array(数组)类动态创建、操作数组

一.Constructor创建对象

创建对象很简单

获取到Class clazz对象之后

通过clazz.getConstructor(Class<?>...parameterTypes) 获取Constructor对象

调用Constructor对象的newInstance()即可获得该类的实例

1.注意如果是指定参数的构造器指定参数的Class传入即可

2.私有化的构造器无法访问的情况下,可以调用Constructor对象的setAccessible(true)  表示取消访问权限检查

二.Method调用方法

获取clazz之后

通过clazz.getMethod(String methodName,Class<?>...parameterTypes) 获取指定的Method对象

Method对象包含一个 Object invoke(Object obj,Object... args)方法

其中第一个obj 表示具体调用该方法的对象  的实例 

第二个args表示具体调用该方法需要传的实际参数

注意:私有化方法的问题按照  Constructor的处理办法一样即可 

三.Field操作成员变量

通过clazz.getField(String fieldName)获取指定的Field对象

Field有两组方法操作成员变量

1.Xxx getXxx(Object obj)  Xxx表示八种基本数据类型   / Object get() 表示不指定类型 返回Object对象

obj 表示从哪个对象来获取字段的值

2.setXxx(Object obj,Xxx value) Xxx同样表示基本数据类型   / set(Object obj,Object value) 表示不指定value类型

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值