Я хочу переопределить класс Source, который уже определен в существующей структуре. Я хочу автоматически заменить исходные экземпляры класса Source моим расширенным классом. У меня нет доступа к коду, который создает объекты Source, поэтому подстановка класса должна выполняться автоматически. Можно ли это сделать с помощью byte-buddy?
ByteBuddyAgent.install();
Source source = new ByteBuddy()
.subclass(Source.class)
.method(named("hello")).intercept(MethodDelegation.to(Target.class))
.defineMethod("myNewMethod", void.class).intercept(MethodDelegation.to(Target.class))
.make()
.load(Source.class.getClassLoader(),
ClassReloadingStrategy.fromInstalledAgent())
.getLoaded()
.newInstance();