我想使用Class和method类访问私有方法.任何人都可以解释一下这段代码中的错误是什么吗


//PrivateMethod.java
class PrivateMethod
{
   private void printMessage()
   {
      System.out.println("hello rakesh:");
   }
}
//AccessPrivate.java
import java.lang.reflect.*;
class AccessPrivate
{
   public static void main(String args[]) throws Exception
   {
      Class c=Class.forName("PrivateMethod");
      Object o=c.newInstance();
      Method m=c.getDeclaredMethod("printMessage",null);
      m.setAccessible(true);
      m.invoke(o,null);
   }
}

试试这个代码(我在cmd的jdk 1.7上测试了它):

Class<?> c=Class.forName("PrivateMethod");        
Object o=c.newInstance();
Method m=c.getDeclaredMethod("printMessage");
m.setAccessible(true);
m.invoke(o);

相关内容

  • 没有找到相关文章

最新更新