Comments 25
А что такое официальный? Я смотрю Firebase — Java есть, Kotlin нет. Надо писать на Kotlin используя вставка на яве?
аннотации Jackson некорректно работают с Kotlin и необходимо дополнительно подключать отдельный jackson-module-kotlin модуль для совместимости
Можно и без jackson-module-kotlin, только тогда чисто Kotlin специфичные вещи работать не будут, что вполне логично.
… хорошо подумайте о том, стоит ли писать общие части на Kotlin.
Вы серьезно? Основное, чем вы аргументируете свое заключение, это internal. Который и не так часто используется.
Когда уже можно будет почитать на хабре уже и что нибудь более серьезное? -Написать хелло ворд уже все успели.
Хотелось бы более критической, профессиональной и независимой оценки, что в котлине хорошо, что — не очень. Идеальных языков не бывает. А щенячий восторг статей намекает на недостаток опыта и профессионализма у авторов.
Вот как живет котлин в больших проектах, какие фремворки используются, библиотеки?
Общие утверждения типа «все как и в джава» бесполезны, т.к. во-первых для этого надо знать java, а во-вторых, там далеко не все так очевидно, как утверждают всякие «популяризаторы» котлина, весь опыт которых заключается в прочтении базовой документации по языку.
Вот, трезвый взгляд на ситуацию. Я тоже постоянно натыкаюсь на недоработки и баги тулинга. Причём довольно сложно делать какую-то фичу IDE так, чтобы она волшебным образом заработала и для Джавы, и для Котлина сразу. Иногда что-то можно объединить, но в большинстве случаев это двойная работа для авторов IDE. В джаве больше всяких инспекцией и квик-фиксов, в том числе ориентированных не на фичи языка, а на библиотеки. Логично ожидать, что при использовании тех же библиотек из Котлина вы получите аналогичную поддержку. Но так бывает увы не всегда.
А про штуки вроде разных имён для live-темплейтов — лучше посылать баг-репорт в youtrack.jetbrains.com.
Вобщем надеюсь что после релиза разаработка приложений с kotlin будет проще со временем конечно.
В последнее время рост интереса к языку программирования Kotlin приблизительно такой же, как рост курса Bitcoin. Повышенное внимание обусловлено еще и тем фактом, что в мае 2017 года Kotlin был объявлен официальным языком разработки под Android.
Желтизна так и прет.
На деле было иначе:
venturebeat.com/2017/05/17/android-now-supports-the-kotlin-programming-language
Google announced Android is gaining official support for the Kotlin programming language, in addition to Java and C++.
«Официальная поддержка» и «стал официальным языком» — это вовсе не одно и то же.
Подскажите как в Kotlin'e проверить объект является ли он массивом, предположим, строк
if (obj instanceof String[]) {
...
}
такой java код плагин IDEA переводит вот в это, но такой вариант "не катит":
if (obj is Array<String>) {
...
}
как вариант использовать:
if (obj::class.java.isArray and String::class.java.isAssignableFrom(obj::class.java.componentType) {
...
}
но я уверен что должен быть более изящный вариант.
Как не самый красивый вариант, можно попробовать вот так:
val isStringArray = try {
obj as Array<String>
true
} catch (e: ClassCastException) {
false
}
@Suppress("UNCHECKED_CAST")
val array = obj as? Array<String>
if (array != null) { ... } else { ... }
var obj: Array<String> = arrayOf("t")
println("Array<String>: " + obj.isArrayOf<String>() + "\n")
println("Array<Number>: " + obj.isArrayOf<Number>() + "\n")
println("Array<Object>: " + obj.isArrayOf<Int>() + "\n")
var obj1: Array<Int> = arrayOf(1)
println("Array<String>: " + obj1.isArrayOf<String>() + "\n")
println("Array<Number>: " + obj1.isArrayOf<Number>() + "\n")
println("Array<Object>: " + obj1.isArrayOf<Int>() + "\n")
выведет:
Array<String>: true
Array<Number>: false
Array<Object>: false
Array<String>: false
Array<Number>: true
Array<Object>: true
Kotlin: опыт боевого применения