今天在写单元测试的时候,由于某个类的方法被定义为private,因此无法调用,于是想到了又反射来调用
其私有方法,代码片段如下:
Class clazz = XXX.class;
String params = "";
String privateMethodName = "";
for (Method method : clazz.getDeclaredMethods()) {
if (privateMethodName.equals(method.getName())) {
method.setAccessible(true);
commonHeader = (String) method
.invoke(clazz.newInstance(), params);
}
}
其中setAccessible(true)必须要加上,不然还是无法调用private方法.