簡體   English   中英

需要在 Java 8 中實現默認方法

[英]Need for default method implementation in Java 8

在瀏覽“防御者方法的需要”的答案時,我遇到了這個答案

您能否詳細說明以下在接受的答案中的含義?

您應該能夠切換到 Java 8,而無需在您的類中實現新方法。

原始問題的提問者 M Sach 說,不要使用默認方法,只需將默認實現放在抽象類中即可。

回答者 Eran 說這會破壞現有的代碼。

例如,假設您有自己的List實現,它是用 Java 7 編寫的,它不是從AbstractList繼承的。 當您將代碼遷移到 Java 8 時,會發生什么? List接口中突然出現了一堆您自己的List實現沒有的新方法(這些方法的“默認”實現在AbstractList ,您的類沒有繼承它)! 您的代碼將不再編譯。

這意味着在遷移到 Java 8 時,您可能必須為現有類編寫新方法。

但是,對於默認方法,默認實現在接口本身中,因此您不必編寫新方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM