首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kotlin -当重写中有相同的方法名时,如何引用委托?

kotlin -当重写中有相同的方法名时,如何引用委托?
EN

Stack Overflow用户
提问于 2018-10-15 02:53:06
回答 1查看 327关注 0票数 2

我试着分析以下示例代码

代码语言:javascript
复制
class StylingAndroidTextClassifier(
        private val context: Context,
        private val fallback: TextClassifier,
        private val factory: TextClassifierFactory = FrameworkFactory()
) : TextClassifier by fallback {

    private val stylingAndroid = "Styling Android"
    private val stylingAndroidUri = "https://blog.stylingandroid.com"
    private val regex = Regex("Styling\\s?Android", RegexOption.IGNORE_CASE)

    override fun suggestSelection(request: TextSelection.Request): TextSelection {
        return fallback.suggestSelection(request)

    }

    override fun classifyText(request: TextClassification.Request): TextClassification {
        return fallback.classifyText(request)
    }
}

,我的问题与为什么必须引用回退有关。类现在应该包括回退方法,但是在这种特殊情况下,方法名将发生冲突。在这种情况下,这就是我们使用fallback.suggestSelection()而不是仅仅使用suggestionSelection()的原因吗?我想知道为什么作者必须授权退却?

相反,我认为这会奏效:

代码语言:javascript
复制
 @SuppressLint("NewApi")
    override fun suggestSelection(request: TextSelection.Request): TextSelection {
        return suggestSelection(request)
       // return fallback.suggestSelection(request)
    }

注意我是如何移除退路的。这是一个无限循环,还是会调用回退的实现"suggestSelection“?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-15 05:23:31

问题的症结是,为何我们要作出以下呼吁:

代码语言:javascript
复制
 override fun suggestSelection(request: TextSelection.Request): TextSelection {
        return fallback.suggestSelection(request)}

private val fallback: TextClassifier显式包含时,为什么和显式限定符。

主要原因是,如果我们编写这样的代码,那么取决于编程语言,可能会发生以下两种情况之一。

代码语言:javascript
复制
 override fun suggestSelection(request: TextSelection.Request): TextSelection {
        return suggestSelection(request)}
  1. 递归调用,在这种情况下没有断点,因此是无限的
  2. 一个模棱两可的调用,编译器不知道它所指的是哪个suggestSelection,在这两种情况下,最好显式地限定对象名,比如fallback,这样在运行时就可以清楚地知道需要调用哪个方法为
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52809140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档