Java 如何在最终类中模拟公共方法

Java 如何在最终类中模拟公共方法,java,unit-testing,junit,junit4,powermockito,Java,Unit Testing,Junit,Junit4,Powermockito,我试图在最后一个类中模拟一个公共方法。我的问题是,由于我无法创建最后一个类的对象,所以我无法监视它。下面是我课堂上的方法 public final class Method extends Executable { @CallerSensitive public Object invoke(Object obj, Object... args) throws IllegalAccessException, IllegalArgumentException,

我试图在最后一个类中模拟一个公共方法。我的问题是,由于我无法创建最后一个类的对象,所以我无法监视它。下面是我课堂上的方法

public final class Method extends Executable {
 @CallerSensitive
    public Object invoke(Object obj, Object... args)
        throws IllegalAccessException, IllegalArgumentException,
           InvocationTargetException
    {
        if (!override) {
            if (!Reflection.quickCheckMemberAccess(clazz, modifiers)) {
                Class<?> caller = Reflection.getCallerClass();
                checkAccess(caller, clazz, obj, modifiers);
            }
        }
        MethodAccessor ma = methodAccessor;             // read volatile
        if (ma == null) {
            ma = acquireMethodAccessor();
        }
        return ma.invoke(obj, args);
    }
}
public final类方法扩展了可执行文件{
@呼叫者敏感
公共对象调用(对象对象、对象…参数)
抛出IllegalAccessException,IllegalArgumentException,
调用目标异常
{
如果(!覆盖){
if(!Reflection.quickCheckMemberAccess(clazz,修饰符)){
Class caller=Reflection.getCallerClass();
检查访问(呼叫者、clazz、obj、修饰符);
}
}
MethodAccessor ma=MethodAccessor;//读取易失性
如果(ma==null){
ma=acquireMethodAccessor();
}
返回ma.invoke(obj,args);
}
}

我正在使用powermockito进行单元测试。我使用了
PowerMockito.spy(Method.class)
用于监视相同的内容,但不起作用

这门课必须是期末考试,有什么原因吗?如果您无法避免该类是final:为什么不提供一个接口来提供您想要模拟的方法呢另外,请阅读Powermocks(或Mockitos)文档,了解
mock()
spy()
@timothyth之间的区别。该类是一个库类。我试图模仿这一点,因为我正在从这里调用webservice。“这个类是一个库类”没有理由
final
IMHO,除非它不在您的控制之下。。。