如题,定义了一个Person类有一个private方法publicPerson{privatevoidtest();//private方法}使用反射来调用先说有问题的方法Constructorcon=Person.class.getConstructor();//构造方法Objectobject=con.newInstance();//生成对象//有问题Person.class.getDeclareMethod("test").setAccessible(true);Person.class.getDeclareMethod("test").invoke(object);//报错不能访问/*Person.class.getDeclareMethod("test").isAccessible()还是等于false*/而使用下面的写法却可以Method=Person.class.getDeclareMethod("test");method.setAccessible(true);method.invoke(object);//不报错,正常执行/*method.isAccessible()是true而Person.class.getDeclareMethod("test").isAccessible()还是等于false*/这是Person.class.getDeclareMethod("test")方法的问题吗,这个问题在反射调用构造函数时也会出现,他们都有一个@CallerSensitive注解,是这个原因吗?望解答。
白衣染霜花
料青山看我应如是
相关分类