Я даже не уверен, возможно ли это, но я пришел к этой идее из-за этого вопроса: Изменить частное статическое конечное поле с помощью отражения Java
Итак, это сценарий:
public static String test() {
return "test test test";
}
Что я хочу сделать, чтобы метод test () возвращал «сработало» вместо «тестовый тестовый тест».
У кого-нибудь есть идеи, как этого добиться?
РЕДАКТИРОВАТЬ:
Я скачал Powermock и попробовал это:
package test;</p>
<p>import org.powermock.api.easymock.PowerMock;</p>
<p>public class InjectorTest {</p>
<pre><code>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 :(";
}
}
Но затмение выдает эту ошибку: метод doReturn (String) не определен для типа PowerMock
Я скачал не тот или не тот пример кода?
Поскольку я не хочу больше голосов, ПОЧЕМУ я хочу это сделать?
Я хочу внедрить Minecraft таким образом, чтобы он не использовал user.home, а относительный URI.
Таким образом, я могу сделать предустановленный портативный Minecraft для флешки для школы: D