Вы также можете использовать метод compareTo()
для сравнения двух строк. Если результат compareTo равен 0, то две строки равны, в противном случае сравниваемые строки не равны.
==
сравнивает ссылки и не сравнивает фактические строки. Если вы создали каждую строку, используя new String(somestring).intern()
, вы можете использовать оператор ==
для сравнения двух строк, в противном случае могут использоваться только методы equals () или compareTo.
Похоже, что компилятор использует неверную версию стандартной библиотеки для запуска самого себя.
Запустите задачу Gradle dependencies
с аргументом --configuration kotlinCompilerClasspath
в подпроекте, где сборка не может определить причину попадания неверной версии в путь к классам компилятора:
./gradlew dependencies --configuration kotlinCompilerClasspath
Правильный вывод должен выглядеть как:
------------------------------------------------------------
Project :examples/kotlin
------------------------------------------------------------
kotlinCompilerClasspath
\--- org.jetbrains.kotlin:kotlin-compiler-embeddable:1.3.11
+--- org.jetbrains.kotlin:kotlin-stdlib:1.3.11
| +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.3.11
| \--- org.jetbrains:annotations:13.0
+--- org.jetbrains.kotlin:kotlin-script-runtime:1.3.11
\--- org.jetbrains.kotlin:kotlin-reflect:1.3.11
\--- org.jetbrains.kotlin:kotlin-stdlib:1.3.11 (*)
(*) - dependencies omitted (listed previously)