[問題] 要求繼承的子類別的method一定要呼叫supe

看板java作者 (LaPass)時間9年前 (2015/08/26 16:31), 編輯推噓2(204)
留言6則, 3人參與, 最新討論串1/2 (看更多)
class A { void mthodA(){ //一些重要的東西 } } class B extants A{ @override void methodA(){ super.methodA(); // 如何要求子類別一定要呼叫這行? } } 不知道沒有辦法作到這種限制條件 我只看到android的activity 是採用在執行時檢查這個 但有沒有辦法在編譯時期就處理? 例如用 annotation 之類的方式 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.87.115 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1440577873.A.16F.html

08/26 17:04, , 1F
寫annotation processor檢查自訂的annotation就可以
08/26 17:04, 1F

08/26 17:05, , 2F
另外現在android anno 也有 @CallSuper
08/26 17:05, 2F

08/26 21:16, , 3F
不知道call super是怎麼運作的說...
08/26 21:16, 3F

08/26 23:58, , 5F
剛好看到
08/26 23:58, 5F

08/26 23:58, , 6F
簡單的話可以在母類內加個boolean 特定時機點檢查
08/26 23:58, 6F
文章代碼(AID): #1LtNbH5l (java)
文章代碼(AID): #1LtNbH5l (java)