Articles of jvm

Очень загадочная ошибка времени выполнения: операнд Bad type в стеке

Я получаю эту загадочную ошибку: java.lang.VerifyError: Bad type on operand stack Exception Details: Location: org/bh/tools/base/strings/TestUtils.concat(Ljava/lang/Object;Ljava/lang/CharSequence;)Ljava/lang/CharSequence; @28: invokevirtual Reason: Type 'java/lang/Object' (current frame, stack[1]) is not assignable to 'java/lang/String' Current Frame: bci: @28 flags: { } locals: { 'java/lang/Object', 'java/lang/CharSequence' } stack: { 'java/lang/StringBuilder', 'java/lang/Object' } Bytecode: 0x0000000: 2a12 59b8 0012 2b12 43b8 0012 2ac1 005b […]

Kotlin Неразрешенная ссылка: println от gradle на CLI

Полагая инструкцию println перед возвратом сбоев, функция kotlin. трассировки стека: thufir@dur:~/NetBeansProjects/kotlin$ thufir@dur:~/NetBeansProjects/kotlin$ gradle clean build –stacktrace w: Classpath entry points to a non-existent location: e: /home/thufir/NetBeansProjects/kotlin/src/main/kotlin/example.kt: (14, 5): Unresolved reference: println > Task :compileKotlin Using Kotlin incremental compilation FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':compileKotlin'. > Compilation […]

Плохой тип в стеке операндов с сопрограммами Kotlin

Этот код успешно компилируется с Kotlin 1.2.10, но когда я его запускаю, он создает java.lang.VerifyError: Bad type on operand stack . Если я удалю класс Test и извлеките функции, он будет работать так, как ожидалось. Почему это? import kotlinx.coroutines.experimental.delay import kotlinx.coroutines.experimental.launch import kotlinx.coroutines.experimental.runBlocking import java.util.* import kotlin.concurrent.schedule class Test { fun scheduleTimeout() { Timer(true).schedule(300) { […]

COROUTINE_SUSPENDED и suspendCoroutineOrReturn в Котлине

Идея сопрограммы в котлине заключалась в том, чтобы отвлечь понятие подвески и обратных вызовов и написать простой последовательный код. Вам не нужно беспокоиться о том, приостановлена ​​ли сопрограмма или нет, подобно потокам. Какова цель suspendCoroutineOrReturn и COROUTINE_SUSPENDED и в каком случае вы могли бы использовать их?

Что такое объект объекта в Котлине

Сейчас я изучаю Котлина, в этом руководстве я натыкаюсь на эти два метода: один с Unit а другой нет Метод с unit fun printSum(a: Int, b: Int): Unit { println("sum of $a and $b is ${a + b}") } Метод без Unit fun printSum(a: Int, b: Int) { println("sum of $a and $b is ${a […]

Приложение Kotlin с плагином приложения Gradle

Я пытаюсь создать простое приложение HelloWorld, используя kotlin , gradle и плагин application gradle. Когда я запускаю его с настройкой ниже, я получаю следующую ошибку: Error: Main method is not static in class com.petarkolaric.helloworld.Main, please define the main method as: public static void main(String[] args) My build.gradle : group 'helloworld' version '1.0-SNAPSHOT' buildscript { ext.kotlin_version […]

kotlin jvmname игнорируется Gradle?

Я создаю приложение для Android и пытаюсь собрать кусок кода kotlin с Gradle для него. У меня есть @JvmName , но кажется, что аннотация игнорируется, поэтому компиляция терпит неудачу. @JvmName("setOptionsForPairs") private fun setOptionsFor(field: JSONObject, options: MutableList<Pair<Int, String>>, spinner: Spinner?){ options.plusAssign(json2pairs(field.getJSONObject("options"))) setOptions(options.map { it.second }, spinner) } private fun setOptionsFor(field: JSONObject, options: MutableList<String>, spinner: Spinner?){ val […]

пакет Kotlin .kt класс в JAR

Как я могу создать HelloWorld.kt как JAR чтобы он работал? thufir@dur:~/kotlin$ thufir@dur:~/kotlin$ kotlinc HelloWorld.kt –include-runtime -d HelloWorld.jar error: invalid argument: –include-runtime info: use -help for more information thufir@dur:~/kotlin$ thufir@dur:~/kotlin$ thufir@dur:~/kotlin$ kotlinc HelloWorld.kt -d HelloWorld.jar WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by com.intellij.util.text.StringFactory to constructor java.lang.String(char[],boolean) WARNING: Please consider reporting […]

Kotlin Back-Tick в именах методов: как это работает?

Я узнал, что в Котлине можно назвать такой метод: fun `i am a test method`(){ Assert.assertEquals("x", "x") } Компилятор генерирует метод с символами подчеркивания вместо пробелов: «i_am_a_test_method», что представляется разумным, поскольку JVM не разрешает методы с пробелами afaik. Как Junit и / или Gradle сообщают об этих тестах с помощью обратного тика?

В Kotlin, как я идиоматически обращаюсь к значениям вложенной карты с нулевым значением или возвращать значение по умолчанию?

Вопрос о быстрой практике Quick Kotlin, так как я не мог найти наилучшего способа сделать это из документации. Предположим, что у меня есть следующая вложенная карта (ввод текста указан явно для цели этого вопроса): val userWidgetCount: Map<String, Map<String, Int>> = mapOf( "rikbrown" to mapOf( "widgetTypeA" to 1, "widgetTypeB" to 2)) Может ли следующий режим быть […]