Я пытаюсь проанализировать следующий пример кода :
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 (), а не просто offertionSelection () ?я хочу знать, почему автор должен делегировать запасной вариант?
Вместо этого я думал, что это сработает:
@SuppressLint("NewApi")
override fun suggestSelection(request: TextSelection.Request): TextSelection {
return suggestSelection(request)
// return fallback.suggestSelection(request)
}
обратите внимание, как убрать запасной вариант.это будет бесконечный цикл, или это вызовет в альтернативной реализации "offerSelection?