Поскольку вы не можете получить доступ к исходному коду или ждать, пока PR будет утвержден, я, вероятно, попробую его с typealias
, например:
typealias MyNested = Superclass.Nested
и используйте его следующим образом:
MyNested()
Как только Superclass
устареет, вам нужно только заменить псевдоним типа, например:
typealias MyNested = Subclass.Nested
Таким образом, у вас есть только 1место, где вам нужно адаптировать свой код при удалении Superclass
.
Теперь очень жаль, что оба класса не находятся под вашим контролем и что эта функция Java не работает в Kotlin.С другой стороны, я очень рад, что это не так.Что-то вроде Subclass.Nested
, когда такого вложенного класса на самом деле нет, на мой взгляд, не очень удобно.Тем не менее, это также возможно с функциями расширения ... так что теперь я нахожусь в конфликте; -)
Как также сказано в комментарии: может быть шанс, что это также может быть просто ошибкой.Я пока не нашел никаких источников, было ли это осознанным дизайнерским решением или нет.Это звучит хорошо для меня, но это не значит, что это было сделано намеренно.Вы можете задать тот же вопрос на форумах Kotlin или , открыть вопрос и связать его здесь.