第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

字節(jié)好友 - 如何委托私有方法?

字節(jié)好友 - 如何委托私有方法?

蝴蝶刀刀 2023-03-09 10:22:20
我有以下單元測試:@Testpublic void TestPrivateMethodDelegation() throws InstantiationException, IllegalAccessException, IllegalArgumentException,     InvocationTargetException, NoSuchMethodException, SecurityException{    Foo foo = new ByteBuddy()        .subclass(Foo.class)        .method(named("getHello")            .and(isDeclaredBy(Foo.class)            .and(returns(String.class))))        .intercept(MethodDelegation.to(new Bar()))        .make()        .load(Foo.class.getClassLoader(), ClassReloadingStrategy.fromInstalledAgent())        .getLoaded()        .getDeclaredConstructor().newInstance();    Method privateMethod = Foo.class.getDeclaredMethod("getHello");    privateMethod.setAccessible(true);    assertEquals(privateMethod.invoke(foo), new Bar().getHello());}這是它使用的類:@NoArgsConstructorpublic class Foo {    @SuppressWarnings("unused")    private String getHello()    {        return "Hello Byte Buddy!";    }}@NoArgsConstructorpublic class Bar {    public String getHello()    {        return "Hello Hacked Byte Buddy!";    }}當(dāng)我在 Foo 類中公開 getHello() 方法時,此測試通過。當(dāng)我將其保留為私有時,測試失敗,因為我只能假設(shè)私有方法未正確委派。甚至可以將私有方法委托給另一個類嗎?
查看完整描述

1 回答

?
呼喚遠(yuǎn)方

TA貢獻(xiàn)1856條經(jīng)驗 獲得超11個贊

不它不是。Byte Buddy 像javac一樣生成字節(jié)碼,并且該字節(jié)碼必須有效才能運行。您不能從另一個類調(diào)用私有方法,因此,Byte Buddy 會拋出異常。



查看完整回答
反對 回復(fù) 2023-03-09
  • 1 回答
  • 0 關(guān)注
  • 125 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號