Java Reflection 教程(4):Fields 成员变量

类的成员变量定义可以通过Class 的getFields()来取得

Class aClass = ...//obtain class object
Field[] methods = aClass.getFields();


如果知道Field的名称,则可以通过getField() 取得对应的Field定义

Class  aClass = MyObject.class
Field field = aClass.getField("someField");


对应到类的定义可以如下:

public class MyObject{
 public String someField = null;
 
}


如果找不到对应的Field定义,Java Reflection API 抛出NoSuchFieldException异常。

1. 获取成员变量名称

Field field = ... //obtain field object
String fieldName = field.getName();


2. 获取成员变量类型

Field field = aClass.getField("someField");
Object fieldType = field.getType();


3. 为成员变量赋值或取得成员变量的值

Class  aClass = MyObject.class
Field field = aClass.getField("someField");
 
MyObject objectInstance = new MyObject();
 
Object value = field.get(objectInstance);
 
field.set(objetInstance, value);

如果Field为Static类型,则使用null 作为get,set 的首参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值