如何注入方法的返回值



我甚至不确定这是否可能,但我想到了这个想法,因为这个问题:使用Java反射更改私有静态final字段

所以这是场景:

public static String test() {
  return "test test test";
}

我想做的是让test()方法返回"工作"而不是"测试测试测试"。有人知道怎么做吗?

编辑:
我下载了powermock并试了一下:

package test;

import org.powermock.api.easymock.PowerMock;

public class InjectorTest {

public static void main(final String[] args) {
    System.out.println("Before the injection:");
    System.out.println(test());
    PowerMock.mockStatic(InjectorTest.class);
    PowerMock.doReturn("worked").when(InjectorTest.class, "test");
    System.out.println("After the injection:");
    System.out.println(test());
}
public static String test() {
    return "did not work :(";
}

}

但是eclipse给出了这个错误:方法doReturn(String)是未定义的类型PowerMock
是我下载错了还是那是一个糟糕的示例代码?

因为我不想要更多的反对票,为什么我要这样做?
我想以不使用用户的方式注入《Minecraft》。而不是相对URI。
通过这种方式,我可以为学校的u盘制作一个预装的便携式Minecraft:D

我认为PowerMock可以做到这一点。(Java底层反射)

使用PowerMock,您的代码看起来像这样:
public static void main(String[] args) {
    PowerMock.mockStatic(Foo.class); 
    PowerMock.doReturn("worked").when(Foo.class, "test");
    System.out.println(Foo.test());
}

感谢@RC上面的代码

相关内容

  • 没有找到相关文章

最新更新