Tag: Java

Kotlin null来自Java

当我将Java代码从一个库转换为Kotlin时,我会看到Java代码中是否存在空值检查,并想知道如何最好地将其转换。 我仍然需要在Kotlin的空检查,因为我不能控制,如果Java将使对象为空? 比方说,我有一个CameraDevice可以从Java返回null 我应该如何定义这个 private lateinit var mCameraDevice: CameraDevice 然后不需要空检查或像这样.. private var mCameraDevice: CameraDevice? = null 然后保持空的检查 if (mCameraDevice != null) { // do something } Kotlin的可玩性让我感到困惑,因为我觉得我不应该处理null,并且应该使用选项1,但是基本上我使用的每个库都是Java,所以我必须处理空值,并使用选项2

Kotlin类实例assertEqual

我是新来的java / kotlin。 我想在下面的课堂上坚持平等: class PlaceCommand(vararg args: String) : ICommand { var direction: Direction = Direction.valueOf(args[1].toUpperCase()) var x: Int = args[2].toInt() var y: Int = args[3].toInt() // … } 需要改变什么: class FactoryTest { @Test fun testFactorySuccess() { val args = arrayOf("place", "WEST", "1", "1") val a = PlaceCommand(*args) val b = Factory(args) as PlaceCommand Assert.assertTrue(axequals(bx)) […]

获取IntelliJ Kotlin插件和gradle匹配

我正在尝试IntelliJ 16,早期访问版本,但我的项目不会编译: Error:(16, 17) Kotlin: Unresolved reference: substring (note: this may be caused by the fact that some classes compiled with an incompatible version of Kotlin were found in the classpath. Such classes cannot be loaded properly by this version of Kotlin compiler. 据推测,Kotlin的Gradle和IntelliJ版本需要匹配,但安装的Kotlin插件是: 1.0.0-rc-1007-IJ143-11 我没有看到这在任何公共存储库。 我在Gradle项目中宣布的最新版本是: buildscript { ext.kotlin_version = ' 1.0.0-rc-1007-IJ143-11' 。 。 […]

将Kotlin文件转换为java,向其中添加java代码并将其转换回Kotlin,就像直接向Kotlin文件添加代码一样?

我想贡献一个Github上的Kotlin android项目,但是我不认识Kotlin。 假设我使用Android Studio中的“反编译”将Kotlin代码转换为Java,将我自己的java代码添加到转换后的文件,然后将编辑的文件转换回Kotlin。 如果我直接添加代码而不转换为java,那么生成的Kotlin代码是否一样? 如果我想在不了解Kotlin的情况下贡献一个Kotlin项目,这是一个可行的策略吗?

Kotlin访问Java类

为什么在Kotlin中,你需要访问他们使用的对象的Java类 MyActivity::class.java 我被告知与Kotlin与JS的互操作性…有什么想法?

Kotlin Kapt:java.lang.IllegalStateException:endPosTable已经设置

试图使用Kotlin maven插件来构建一个kotlin应用程序。 使用Dagger 2依赖注入框架。 调用时出现以下错误 mvn clean compile package 也可以通过调用来复制 mvn clean package 然后打电话 mvn package 在maven 3和java 8中似乎有一个错误,但是我找不到kotlin maven插件的解决方法。 [ERROR] Failed to execute goal org.jetbrains.kotlin:kotlin-maven-plugin:1.1.3-2:kapt (kapt) on project process: Compilation failure [ERROR] java.lang.IllegalStateException: failed to analyze: java.lang.IllegalStateException: endPosTable already set [ERROR] at org.jetbrains.kotlin.analyzer.AnalysisResult.throwIfError(AnalysisResult.kt:57) [ERROR] at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyzeAndGenerate(KotlinToJVMBytecodeCompiler.kt:344) [ERROR] at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileBunchOfSources(KotlinToJVMBytecodeCompiler.kt:226) [ERROR] at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:200) [ERROR] at […]

在apk中使用Kotlin构建DuplicateFileException

我正在尝试使用Kotlin / Anko构建一个基本的应用程序,但是我收到以下重复文件异常 执行失败的任务':app:transformResourcesWithMergeJavaResForDebug'。> com.android.build.api.transform.TransformException:com.android.builder.packaging.DuplicateFileException:在APK中复制的重复文件kotlin / internal / internal.kotlin_builtins File1:C: \ Users \ mahesh.gradle \ caches \ modules-2 \ files-2.1 \ org.jetbrains.kotlin \ kotlin-runtime \ 1.0.6。\ 3562c66f648480d3bd4f76cff722488ced13445b \ kotlin-runtime-1.0.6.jar File2:C:\ Users \ mahesh.gradle \缓存\模块-2 \文件-2.1 \ org.jetbrains.kotlin \科特林编译可嵌入\ 1.0.6 \ 4008eb91a337b377dae7e4572b8b543e5321f549 \科特林编译可嵌入-1.0.6.jar 以下是应用程序级别gradle文件的代码: apply plugin: 'com.android.application' apply plugin: 'kotlin-android' buildscript { ext.kotlin_version = '1.0.6' repositories […]

Kotlin为不同的增量

Kotlin有跟随 for (i in 0..10) {} 它类似于Java for (int i = 0; i < 10; i++) {} 但如何改变kotlin的增量,以获得类似于java的东西: for (int i = 0; i < 10; i = i + 2) {}

了解kotlin执行者

我理解执行者的概念,但是我在理解kotlin的执行者方面有些麻烦。 也许这是语法没有帮助。 让我们看看下面的例子: private class AlwaysCallback(private val executor: (() -> Unit) -> Unit, private val cb: Progress.() -> Unit) : Callback { override fun execute(progress: Progress) { executor { progress.cb() } } } 如果我理解正确,执行者( () -> Unit ) -> Unit是一个关闭的容器。 要执行的代码块。 我不确定这是真的,还是只是一个匿名功能的船只。 另一件事是,有人可以解释语法: ( () -> Unit ) -> Unit ? 我已经阅读了kotlin文档,阅读kotlin源代码,并试图谷歌,但我真的很难理解这一点。 谢谢

将GsonBuilder转换成Kotlin

有谁知道如何将此代码转换为kotlin GsonBuilder builder = new GsonBuilder(); builder.setLenient(); builder.registerTypeAdapter(Date.class, new JsonDeserializer<Date>() { @Override public Date deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { if (json.getAsJsonPrimitive().isNumber()) { return new Date(json.getAsJsonPrimitive().getAsLong() * 1000); } else { return null; } } }); return builder.create(); 然后,我试了一下 val builder = GsonBuilder() builder.setLenient() builder.registerTypeAdapter(Date::class.java,………) return builder.create() …..我不知道如何转换代码