正如标题所述,我正在寻找一种在 kotlin 接口中实现 Final(无法重写的方法)的方法。所以这是我的代码:
interface NewsItemState {
final fun delete(newsItem: NewsItem) {
validateCanDelete(newsItem)
deleteNewsItem(newsItem)
}
fun validateCanDelete(newsItem: NewsItem)
fun deleteNewsItem(newsItem: NewsItem)
}
Run Code Online (Sandbox Code Playgroud)
这是我的用例:
delete
函数final
不能在接口的实现中被覆盖。validateCanDelete
和方法。deleteNewsItem
现在,我知道目前这是不可能的,并且在接口中不允许将 Final 添加到方法中。我也知道我可以通过用抽象类替换接口来实现这一点。
但是,我想知道是否有一种方法可以在接口中实现相同的功能,因为我的final
方法不会有任何“状态管理”逻辑。
虽然接口中不可能有最终方法,但为接口类型定义扩展方法是绝对可以的。
interface NewsItemState {
fun validateCanDelete(newsItem: NewsItem)
fun deleteNewsItem(newsItem: NewsItem)
}
fun NewsItemState.delete(newsItem: NewsItem) {
validateCanDelete(newsItem)
deleteNewsItem(newsItem)
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3326 次 |
最近记录: |