简体   繁体   English

使用反射访问静态最终变量

[英]Access static final variable using reflection

I have a Java class with a static variable 我有一个带有静态变量的Java类

package com.mytest
public class MyClass{
    public static final TextClass TEXT_CLASS = new TextClass();
}

How can I access the object TEXT_CLASS using reflection? 如何使用反射访问对象TEXT_CLASS

(I have the string "com.mytest.MyClass.TEXT_CLASS" . I need to access the object.) (我有字符串"com.mytest.MyClass.TEXT_CLASS" 。我需要访问该对象。)

Accessing static fields is done exactly the same way as normal fields, only you don't need to pass any argument to Field.get() method (you can pass a null). 访问静态字段的方式与普通字段完全相同,只需要将任何参数传递给Field.get()方法(可以传递null)。

Try this: 试试这个:

Object getFieldValue(String path) throws Exception {
    int lastDot = path.lastIndexOf(".");
    String className = path.substring(0, lastDot);
    String fieldName = path.substring(lastDot + 1);
    Class myClass = Class.forName(className);
    Field myField = myClass.getDeclaredField(fieldName);
    return myField.get(null);
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM