反射相关类Field方法列表分析

        Field表示一个类成员对象,Field对象指向一个普通类的一个成员域。使用下面的一个类作为示例:

class Test{
    public String mTag = "DefaultTag";
    public Test(String tag){
        if(tag != null){
            this.mTag = tag;
        }
    }
    public void print(String content){
        if(content != null){
            System.out.println(mTag + ":" + content);
        }else{
            System.out.println("null");
        }
    }
}
        类有一个public域mTag,类型为String,下面一段代码是简单使用示例:

try {
            Class<Test> testClass = (Class<Test>)Class.forName("Test");
            Test first = new Test("First");
            try {
                Field field = Test.class.getField("mTag");// 这个方法只支持public访问的域
                System.out.println(field.get(first));
            } catch (NoSuchFieldException e) {
                e.printStackTrace();
            } catch (IllegalAccessException e){

            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        注意,打印语句里调用了get方法,get方法的参数为Test类型的实例。因为Field实例是针对类的,而不是针对类实例的,所以,传递参数必须是包含该方法的类型的一个实例对象,获取的是实例对象中对应的Field域的值;
        File类,对不同的数据类型定义了对应的get方法和set方法。下面 介绍非值获取方法:

        1. Class<?> getDeclaringClass() : 获取定义Field对象的类Class对象;

        2. Type getGenericType() : 获取域的数据类型

        3. Class<?> getType() : 获取域的数据类型

        4. String getName() : 获取域定义的名称


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值