相关疑难解决方法(0)

通过反射或其他方式覆盖java最终方法?

在尝试编写测试用例时会出现这个问题.Foo是框架库中的一个类,我没有源代码访问权限.

public class Foo{
  public final Object getX(){
  ...
  }
}
Run Code Online (Sandbox Code Playgroud)

我的申请会

public class Bar extends Foo{
  public int process(){
    Object value = getX();
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)

由于其他依赖性,我无法创建Foo对象,因此单元测试用例无法初始化.当值为null时,BarTest抛出空指针.

public class BarTest extends TestCase{
  public testProcess(){
    Bar bar = new Bar();        
    int result = bar.process();
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法可以使用反射api将getX()设置为非final?或者我该如何进行测试?

java reflection methods final

10
推荐指数
2
解决办法
1万
查看次数

标签 统计

final ×1

java ×1

methods ×1

reflection ×1