一個例子:在Android中,通常當你試圖重載一個Activity超類的方法時,你必須有@Override註解,它是強制的。他們如何做到這一點?如何使@Override爲子類強制?
我想強加嚴格我subclss壓倒一切的方法使用@覆蓋。父母課上需要做什麼改變才能實施?
我想執行註釋(不只是重寫基本方法)。
一個例子:在Android中,通常當你試圖重載一個Activity超類的方法時,你必須有@Override註解,它是強制的。他們如何做到這一點?如何使@Override爲子類強制?
我想強加嚴格我subclss壓倒一切的方法使用@覆蓋。父母課上需要做什麼改變才能實施?
我想執行註釋(不只是重寫基本方法)。
你可以用代碼質量CI期間檢查工具做到這一點,但你可能要建立自己的(這是中等複雜程度的任務),或添加功能到現有的代碼質量棋子之一。那麼如果註釋不在那裏,那麼你只是簡單地失敗了構建。
聽起來完全可行。我接受+1。感謝您的時間。 – ikis
如果要強制替代,這意味着,該方法的父類的實現將隱藏肯定。所以它不會在任何情況下被調用,除非從重寫的方法本身。
這意味着,你可以(與class
一起)申報方法abstract
:
abstract class Foo {
public abstract void overrideMe();
}
我不認爲你理解這個問題。 –
我認爲你沒有足夠好地解釋你的問題。如果問題是「我如何在子類上強制執行@Override註解」,這對我來說似乎只是一個XY問題。你爲什麼想這麼做? – Jack
沒有辦法強迫任何人替代。如果你製作課程或方法abstract
,那麼是的,覆蓋是強制性的。但是,你不提供你的實現,你希望你的子類和/或不幸的維護無人機遵循並基於它們派生自己的覆蓋。如果這個類不是抽象的,沒有人被強制覆蓋任何東西,並且可以儘可能多地使用你的原始方法。
而且@override
註釋始終是可選的,你是否會抵消抽象或具體方法。所有註釋都是可選的,因爲它們是元數據,僅對人有用,編譯器完全忽略它們,就像註釋和空格一樣。
我不認爲你可以用代碼做到這一點 - 有可能是一些在你的IDE(例如Netbeans的顯示一個警告,如果註釋丟失),或者你可以大概用一種風格分析工具,例如CheckStyle的或FindBugs的有一個規則來檢查該註釋。 – assylias
我認爲你問的是強制執行註解,但答案認爲你試圖強制人們重寫你的基本方法。因此,這個問題顯然不清楚。請澄清。 –
這在Android中不是強制性的。唯一可能發生的事情是Android Studio會抱怨說您沒有添加該註釋。 – zapl