Я пытаюсь изменить возвращаемое значение метода уже загруженного класса.ByteBuddy - изменить значение класса нагрузки
Из документации ByteBuddy (http://bytebuddy.net/#/tutorial) это возможно с использованием Java-агента, если я не добавляю никакого поля/метода.
Мой код выглядит следующим образом:
ByteBuddyAgent.install();
new ByteBuddy()
.redefine(StuffImpl.class)
.method(returns(Result.class))
.intercept(FixedValue.value(new Result("intercepted")))
.make()
.load(StuffImpl.class.getClassLoader(), ClassReloadingStrategy.fromInstalledAgent());
Но я получаю следующее исключение:
java.lang.UnsupportedOperationException: class redefinition failed: attempted to change the schema (add/remove fields)
Дело в том, что я не добавляя любой метод. Где Byte Buddy добавляет поле или метод в вышеуказанный код?
EDIT:
public class StuffImpl {
public Result validate() {
return new Result("original");
}
}
public class Result {
private String result;
public Result(String result) {
this.result = result;
}
}