以小說(shuō)名字做網(wǎng)站的小說(shuō)網(wǎng)關(guān)鍵詞搜索熱度
提示:文章寫(xiě)完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔
目錄
一、@Delegate介紹
二、示例
三、使用場(chǎng)景
四、使用注意事項(xiàng)
總結(jié)
提示:以下是本篇文章正文內(nèi)容,下面案例可供參考
一、@Delegate介紹
@Delegate
可以讓你的類使用其他類的方法,而不需要自己寫(xiě)代碼
二、示例
// 一個(gè)類,有一個(gè)方法
public class A {public void sayHello() {System.out.println("Hello");}
}// 一個(gè)類,委托了A類的方法
public class B {@Delegate // 委托A類的方法private A a = new A();public static void main(String[] args) {this.sayHello(); // 調(diào)用A類的方法}
}
有一個(gè)類叫做A,它有一個(gè)方法叫做sayHello(),你想讓另一個(gè)類B也能用這個(gè)方法,那就可以在B類中加上一個(gè)A類型的字段,并在這個(gè)字段上加上@Delegate注解,這樣,B類就可以直接調(diào)用sayHello()方法,就像它是自己的方法一樣?
三、使用場(chǎng)景
1、我們?cè)趯?shí)際編碼中,會(huì)產(chǎn)生大量重復(fù)性的代碼或者方法,如果要將其提取出來(lái),就得新建好多額外的類出來(lái),而且還不好歸類,有時(shí)候也會(huì)跨多層目錄。那么這個(gè)時(shí)候,就可以通過(guò)這種方式,在不同的地方使用同一個(gè)方法。
2、當(dāng)我們?cè)诰帉?xiě)業(yè)務(wù)代碼的時(shí)候,通常會(huì)有service層和impl層,如果要抽出來(lái)方法的話,就必須得在service中新增接口方法,如果是不對(duì)外的情況下,這么添加,就會(huì)暴漏出去。如果采用@Delegate注解的方式,就不用有這個(gè)擔(dān)心了。
四、使用注意事項(xiàng)
通過(guò)這種方式,去調(diào)用的方法,必須得是public修飾的。
總結(jié)
每天進(jìn)步一點(diǎn)點(diǎn)!