1
請問homebody能給我一個提示如何用byte-buddy 1.6.9重新定義靜態方法嗎?用ByteBuddy重新定義靜態方法
我已經試過這樣:
public class Source {
public static String hello(String name) {return null;}
}
public class Target {
public static String hello(String name) {
return "Hello" + name+ "!";
}
}
String helloWorld = new ByteBuddy()
.redefine(Source.class)
.method(named("hello"))
.intercept(MethodDelegation.to(Target.class))
.make()
.load(getClass().getClassLoader())
.getLoaded()
.newInstance()
.hello("World");
我得到了以下異常:
異常線程 「main」 java.lang.IllegalStateException:不能注入已經加載類型:類delegation.Source
謝謝
Rafael,如果我想重新定義Target類的重新定義的方法中Source類的hello()靜態方法,我仍然可以調用Source類的原始靜態方法嗎?非常感謝 ! –
查看'Advice'類,您可以在原始方法之前和之後添加代碼,並且還可以有條件地跳過該方法。除此之外,您只能重新綁定類以保留原始實現。 –
您是否知道有關如何使用Advice類的任何示例?謝謝 ! –