亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

將靜態方法放在接口中是一種好習慣嗎?

將靜態方法放在接口中是一種好習慣嗎?

慕標琳琳 2023-03-17 15:02:09
假設getAverageDifficulty我的班級中有一個方法Difficulty是這樣的:public static Float getAverageDifficulty (List<Difficulty> difficultyList) {     ...         return average; }我的方法顯然需要是靜態的,因為要求Difficulty. 現在假設我正在使用一個接口,IDifficulty這樣我可以稍后更改我的實現。顯然,我確實希望我的getAverageDifficulty方法可以從IDifficulty, 獲得,并且由于我不能聲明靜態方法抽象,所以顯而易見的選擇是getAverageDifficulty直接放在我的接口中。我的問題是:將靜態方法放在我的接口中是否犯了一個錯誤,其中包含其他Difficulty等待實現的方法?我不應該混合靜態和“普通”接口抽象方法嗎?我應該創建DifficultyHelper類并將我的方法放在那里嗎?
查看完整描述

2 回答

?
狐的傳說

TA貢獻1804條經驗 獲得超3個贊

歸根結底,這是一個風格問題。但是,如果輔助類的唯一目的是保存此方法(可能還有一些類似的方法),那么您可以通過將它們放在接口中來為自己節省一個類定義:

從 Java 8 開始,接口不能包含靜態方法的限制已被取消,因此通常沒有什么理由為接口提供不可實例化的伴隨類 [Effective Java,第 3 版]。


查看完整回答
反對 回復 2023-03-17
?
繁星淼淼

TA貢獻1775條經驗 獲得超11個贊

接口中的靜態方法類似于默認方法,只是我們不能在實現這些接口的類中覆蓋這些方法。所以在我看來,在你想要防止覆蓋之前,沒有必要在接口中編寫靜態方法。



查看完整回答
反對 回復 2023-03-17
  • 2 回答
  • 0 關注
  • 133 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號