Объединение Java с Kotlin в Android

Я немного перехожу от Java к Kotlin в разработку приложений для Android, но есть некоторые случаи, когда я не хочу кодировать в Kotlin и хочу, чтобы эти конкретные случаи были написаны на Java:

  • Это экономия усилий, что Kotlin удаляет дополнительное использование findViewByIds
  • Я знаю, что теперь это null-safety против которой Java всегда срабатывает с помощью NullPointerException
  • Также предлагаются Lambda выражения и многие другие функции.

Но все же некоторые из моих кодов не могут быть записаны в Kotlin, например, static члены или non-primitive поля.

Аннотации Котлина фактически могут заменить эти static members . Но любите некоторые функции кодирования Java и не хотите оставлять это.

Мой вопрос: могу ли я объединить Java и Kotlin?

Solutions Collecting From Web of "Объединение Java с Kotlin в Android"

Если вы задаете вопрос, можете ли вы использовать файлы kotlin в java-файлах и наоборот, тогда ответ будет да.

Если вы спрашиваете, можете ли вы использовать синтаксис kotlin в java-файлах и наоборот, тогда ответ будет отрицательным.

Чтобы использовать код kotlin в классе java, вы просто используете класс, как любой другой класс java

Вы можете создать аналогичные статические переменные java с помощью объекта-компаньона .

Вы можете легко создать singleton в Kotlin, используя объект .

После того, как я бросил котлин. Я перевел все мои коды в Котлин.

Даже если это interop, вы не можете смешивать Java и Kotlin в том же файле.

Если вы действительно хотите иметь статические методы / переменные, вы можете использовать companion object . Вы также можете получить доступ к «реальному» статическому методу в вашей JVM с помощью @JvmStatic .

Простой пример:

 companion object { @JvmStatic fun newInstance() ) SampleFragment() } 

которая равна

 public static SampleFragment() { return new SampleFragment(); } 

Используя @JvmStatic вы можете использовать Java для доступа к вашим статическим методам, как раньше.

Вы можете иметь в своем проекте Java и класс и действия Kotlin.

У одного и того же класса не может быть Java и Kotlin. Вы можете преобразовать файл Java в Kotlin с помощью Ctrl + Alt + Shift + K или просто дважды коснитесь SHIFT и выполните поиск Convert Java в Kotlin