Java 反射 - 使用接受接口作为参数的 public 构造函数调用受保护的 class

Java reflection - Call protected class with public constructor that accepts Interface as argument

我想通过反射调用由 public 构造函数组成的受保护 class。以下是我的代码

final Class clazz = Whitebox.getInnerClassType(parentClass.getClass(), 
"InnerClassName");
final Constructor constructor = Whitebox.getConstructor(clazz,AnInterface.class);
obj = constructor.newInstance(interfaceMockObject);

我遇到以下异常:

org.powermock.reflect.exceptions.ConstructorNotFoundException: Failed to lookup constructor with parameter types      

我认为问题可能在于构造函数参数是一个接口。

Inner 类 隐式地将封闭对象作为其构造函数的第一个参数。但是,使用反射时需要明确指定它:

final Class clazz = Whitebox.getInnerClassType(parentClass.getClass(), "InnerClassName");
final Constructor constructor = 
     Whitebox.getConstructor(clazz, paretnClass.getClass(), AnInterface.class);
     // Here -----------------------^

statusPage = constructor.newInstance(parentClass, interfaceMockObject);
// And pass the parent instance -----^