Подтвердить что ты не робот

Можно ли добавить "статическую" функцию расширения для Java-класса?

Например, у меня есть класс Java (из внешней библиотеки):

class A {} // This is Java class

Я хочу добавить функции расширения, написанные на Kotlin, и назвать их так:

A.foo() // This is call of extension function 'foo' from Kotlin code

Как я понимаю, сейчас это невозможно сделать в Kotlin, поскольку он поддерживает "статические" функции расширения для KClass-es только с сопутствующим объектом. Правильно?

Похоже, ничто не мешает реализовать такую функциональность в Kotlin позже. Правильно?

ОБНОВЛЕНИЕ 2019-06-12: Этот вопрос не отвечает на мой вопрос, потому что мой вопрос о совместимости функций расширения Kotlin с классами Java.

4b9b3361

Ответ 1

Ты прав. В Kotlin 1.0 вы можете определить функции расширения на сопутствующем объекте класса Kotlin, и такие функции можно вызвать с помощью синтаксиса A.foo(). Поддержка определения статических функций расширения на Java-классах является возможной возможностью для будущих версий Kotlin, но в настоящее время она не относится к дорожной карте Kotlin 1.1.