Intereting Posts
Как заставить безопасных строителей Kotlin работать в Scala? В nougat Failure возвращает результат ResultInfo {}} в действие {com.example. *. * / Com.example. *. *. MainActivity}: Kotlin: Что я могу сделать, если в библиотеке Java есть перегрузка как примитивного, так и вложенного типа? Запечатанные внутренние классы Удалить символы из строки, которая встречается в другой строке в Котлине Что такое тест (0) в этом фрагменте от kotlinlang.org? Исключение Java / Kotlin для шаблона посетителя с типичным типом возврата Как получить KProperty1 из KProperty0 Только последний элемент добавлен в RecyclerView в Android (Kotlin) Как превратить Mutable Collection в неизменяемую Расширение RxJava наблюдаемого в Котлине с надлежащей утилизацией Kotlin .removeSurrounding не работает, чтобы удалить строку aws ARN Почему Kotlin не использует `List (…)` как фабрику для списков и аналогичную конвенцию для всех абстрактных коллекций? Зависимые компоненты Dagger2 упаковать файл Kotlin .class в JAR для выполнения

Объединение 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