Android Studio不支持Java 8默認方法。 是否有可能通過不同的方式實現其功能?模擬Android Studio中的默認(「Defender」)方法
我已經有了在Java IDE中工作的代碼。我試圖將以下功能移植到Android Studio。
(在基於蜱動畫循環的上下文中)
簡化,相關架構圍繞四件事情:
- A '純' 接口(
Common
)具有實例變量的獲取者 - 抽象類(
anObject
),它擴展了Common
並實現了al它的獲取者中有一個被定義爲調用一系列抽象方法的方法updateMe()
。 - 擴展
Common
的其他接口,其中每個描述了一個屬性,該屬性影響在執行其抽象方法時如何反應。 - 延伸
anObject
並實現許多屬性接口的具體類。
動畫環上每刻度,其被實現爲方法中anObject
成依次調用本身anObject
抽象方法(對於問題的緣故,只是moveMe()
和drawMe(...)
)每個對象實例調用updateMe(...)
。
現在創建複合對象進行交互變得非常簡單的:
Ball extends anObject implements isRound, isMobile
接口isRound
提供drawMe(..)
的默認實現它使用的干將在Common
(在anObject
實現)抓住對象的實例變量,然後執行一個drawOval(...)
命令。
類似地,isMobile
實現了從anObject
繼承的Ball
的摘要moveMe()
。
過分簡化,但它是。它使多個對象的管理行爲簡單化。我的完整代碼有碰撞檢查,玩家輸入等。只需添加少量代碼,默認方法就可以添加全新的遊戲和功能。最初作爲Pong任務的人有能力成爲Snake,PacMan,添加多個球等等。這似乎是一個非常強大的資源。
那麼,如果我不能使用默認方法,如何將這些'屬性'接口的功能轉換爲android?它實質上允許多重和非線性繼承。
寫完後,我發現每次我想要一個接口向下填充接口時,我都可以複製/粘貼相關方法,但這種方法相當麻煩,並且有可能進行更改和版本控制惡夢。我仍然想看看是否有人有更好的解決方案。
我的理解是,Android的安全權限不允許反射。那是不正確的? – Scottie