天天看點

有關java通過反射機制調用類中自有方法的問題

  相關文章:  <script type=text/javascript> new Draggable("related_topics"); </script> 在java中,通過其提供的反射機制,修改對象的accessible标志,以達到通路該對象成員時不檢測通路權限的目的。

public class B {

public static void main(String[] args)

                throws SecurityException, NoSuchFieldException, NoSuchMethodException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException{

Class<A> a = A.class;

Field field = a.getDeclaredField("rubbish");

field.setAccessible(true);

Class[] paramsType = new Class[1];

paramsType[0] = String.class;

Method method  = a.getDeclaredMethod("backStr", paramsType);

method.setAccessible(true);

A obj = a.newInstance();

System.out.println("私有" + field.get((obj)));

String aa = "aaaaaaaaa";

Object[] params = new Object[1];

params[0] = aa;

System.out.println("函數:" + method.invoke(obj, params));

}

}

class A {

private String rubbish = "1111";

private String backStr(String aa){

return aa;

}

}