已知一个类的全称,如:org.common.test.Userinfo
我想获取这个类中name的字段值,可用如下方法:
Class cls = Class.forName("org.common.test.Userinfo");
Object obj = cls.newInstance();
Field field = cls.getField("name");
field.get(obj);我现在的问题时,我已知了一个只存在似有构造器的类全称,如:org.common.test.Users
就是说它不可以使用newInstance()方法。
那么我想获取这个类的一个静态字段的值该如何操作?譬如这个字段名为:name
程序里我当然可以写:User.name;来获取该值,但是我想动态获取,因为可能是多个拥有静态name字段的类,我要获取它们的这个静态字段值。
哪位高手给个答案,谢了!

解决方案 »

  1.   

    import java.lang.reflect.Field;public class Test6 {    public static void main(String[] args) throws Exception {        
            Class<MyTest> clazz = MyTest.class;
            Field field = clazz.getDeclaredField("num");
            Object value = field.get(null);
            System.out.println(value);        
        }
    }class MyTest {
        
        public final static int num = 5;
    }