Имеет функцию расширения
fun <T> T.doSomething() where T: A, T: B
Если есть только одна общая привязка A
, я могу использовать синтаксис (A::doSomething)(instanceOfA)
для ссылки на функцию, но как это сделать с несколькими границами?
Пример:
interface A
, interface B
и функция расширения, связанная с обоими интерфейсами fun <T> T.doSomething() where T: A, T: B
.
Теперь мне удается "переопределить" doSomething
, если класс расширяет дополнительные interface C
, например class X: A, B, C
:
- Объявить другую функцию расширения
fun <T> T.doSomething() where T: A, T: B, T: C
- Объявить
doSomething()
внутри классаX
Если я использую doSomething()
в обеих функциях "переопределения", это вызовет бесконечную рекурсию. Как я могу сослаться на исходный fun <T> T.doSomething() where T: A, T: B
(например, super.doSomething()
)?