public class MyClass
{
public static final String xx="vrwefvew";
public static void main(String args[])
{
try {

   Class c=MyClass.class;
   Field f=c.getDeclaredField("xx");
   System.out.println(f.get(null));
   } catch (Exception e) {
    System.out.println(e.toString());
   }
}
}
测试通过,有什么问题吗

解决方案 »

  1.   

    如果属性的值是另一个类,且是private(或该类不能访问)的话,
    就会throws java.lang.IllegalAccessException
    如:
    class MyClass1{
    private static final String xx="hello";
    }
    就不能 
       Class c=MyClass1.class;
       Field f=c.getDeclaredField("xx");
       System.out.println(f.get(null));
      

  2.   

    不过setAccessible(true)让我们可以对其访问Class c=MyClass1.class;
    Field f=c.getDeclaredField("xx");
    f.setAccessible(true);
    System.out.println(f.get(null));这样的话就行了