[英]Is this an acceptable use of a Java default interface method?
public interface Example<E>
{
E get(int index);
default E get()
{
return get(0);
}
}
這將是界面的初始設計。 是否可以接受這樣的默認方法(主要用於默認參數),還是僅在將來將其用於附加功能?
這是Java 8及更高版本中的接口上默認方法的有效用法。
這是文檔: https : //docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html
和教程: http : //www.oracle.com/webfolder/technetwork/tutorials/obe/java/JavaSE8DefaultMethods/JavaSE8DefaultMethods.html
我可以從Oracle找到有關default
接口方法的預期用法的官方資料是( source ):
默認方法使您可以向庫的接口添加新功能,並確保與為這些接口的較早版本編寫的代碼二進制兼容。
但是,我將其視為與abstract
類相同,定義了必須由子類實現的abstract
方法(在這種情況下,沒有默認實現的接口方法),並提供了可能被子類覆蓋的具體方法(默認接口)方法)。
正式聲明的目的是為了與實現舊接口的客戶端向后兼容(否則,他們都必須返回並實現此新方法)。 它僅是為此目的而添加的,最初不是Java的功能。 但老實說,這沒什么大不了的,在我看來,增加的易用性無疑使其可以接受。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.