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

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

Java 8中Default或Defender方法的目的

Java 8中Default或Defender方法的目的

慕勒3428872 2019-10-10 16:45:14
Java 8包含了一個稱為Defender方法的新功能,該功能允許在接口中創(chuàng)建默認方法實現(xiàn)?,F(xiàn)在,這首先是所有Java壓縮程序員的巨大范式轉(zhuǎn)變。我查看了Brain Goetz給出的JavaOne 13演示文稿,他在其中討論了Collections庫中的新功能stream()和parallelStream()實現(xiàn)。為了在Collection接口中添加新方法,他們不能只添加新方法而不破壞以前的版本。因此,他告訴我們,為滿足此需求,添加了Default方法的新功能。public interface SimpleInterface {  public void doSomeWork();  //A default method in the interface created using "default" keyword  default public void doSomeOtherWork(){    System.out.println("DoSomeOtherWork implementation in the interface");  }}現(xiàn)在我的問題是,基本方法是否在需要添加新方法而不破壞客戶端代碼時才有用?還是還有其他用途?
查看完整描述

3 回答

?
慕娘9325324

TA貢獻1783條經(jīng)驗 獲得超4個贊

除了可能在將來的版本中向接口添加方法之外,還有一點很重要的一點是interface,即使一個或多個方法都可以保留功能接口。

功能接口只有一個非默認的抽象方法,該方法可以通過lambda表達式實現(xiàn)。一個示例是接口,該Predicate接口僅具有一個抽象方法(test),同時提供用于Predicate將a取反或與另一個組合的默認方法Predicate。如果沒有默認方法,則必須在另一個實用程序類Collections(如Java 8之前的類)中提供這些方法(因為您不希望放棄針對此類的lambda實現(xiàn)的可能性interface)。


查看完整回答
反對 回復(fù) 2019-10-10
?
四季花海

TA貢獻1811條經(jīng)驗 獲得超5個贊

如您所說,其主要動機是允許現(xiàn)有接口的發(fā)展。

但是,出于某些原因,您也希望在全新的界面中使用它們:

其中一個原因是可以使用接口的其他(非默認)方法輕松實現(xiàn)的方法。default為此使用方法可以減少對Foo-interface / AbstractFoo-base-implementation組合的需求(AbstractList例如,請參見)。

盡管這不會創(chuàng)建一個全新的字段,但它意味著您可以擁有對最終用戶友好的界面(具有許多有用的方法),同時仍然使其易于實現(xiàn)。


查看完整回答
反對 回復(fù) 2019-10-10
  • 3 回答
  • 0 關(guān)注
  • 469 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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