簡體   English   中英

這是Java默認接口方法的可接受用法嗎?

[英]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);
    }
}

這將是界面的初始設計。 是否可以接受這樣的默認方法(主要用於默認參數),還是僅在將來將其用於附加功能?

我可以從Oracle找到有關default接口方法的預期用法的官方資料是( source ):

默認方法使您可以向庫的接口添加新功能,並確保與為這些接口的較早版本編寫的代碼二進制兼容。

但是,我將其視為與abstract類相同,定義了必須由子類實現的abstract方法(在這種情況下,沒有默認實現的接口方法),並提供了可能被子類覆蓋的具體方法(默認接口)方法)。

正式聲明的目的是為了與實現舊接口的客戶端向后兼容(否則,他們都必須返回並實現此新方法)。 它僅是為此目的而添加的,最初不是Java的功能。 但老實說,這沒什么大不了的,在我看來,增加的易用性無疑使其可以接受。

暫無
暫無

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

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