Tag: Java

Kotlin中的Void返回types是什么意思?

我试图在Kotlin中创建没有返回值的函数。 而且我用Java编写了一个函数,但是使用了Kotlin语法 fun hello(name: String): Void { println(“Hello $name”); } 我有一个错误 错误:带有块体('{…}’的函数中需要“返回”expression式) 经过几次更改后,我得到了一个可为空函数作为返回types的工作函数。 但这不完全是我所需要的 fun hello(name: String): Void? { println(“Hello $name”); return null } 根据Kotlin文档,单元types对应于Java中的voidtypes。 所以在Kotlin中没有返回值的正确函数是 fun hello(name: String): Unit { println(“Hello $name”); } 要么 fun hello(name: String) { println(“Hello $name”); } 问题是: Void在Kotlin中意味着什么,如何使用它,以及这种用法的优点是什么?

如何在Kotlin中实现这个Java接口?

既然Kotlin没有原始的东西,那怎么能实现呢? public interface A { Object get(Integer i); Object get(int i); } 我无法更改Java代码,因为它是库中已编译的类文件。

Kotlin:接口…没有构造函数

我正在将一些Java代码转换为Kotlin,我不太了解如何实例化Kotlin代码中定义的接口。 作为一个例子,我有一个接口(在Java代码中定义): public interface MyInterface { void onLocationMeasured(Location location); } 然后再在我的Kotlin代码中实例化这个接口: val myObj = new MyInterface { Log.d(“…”, “…”) } 它工作正常。 但是,当我将MyInterface转换为Kotlin时: interface MyInterface { fun onLocationMeasured(location: Location) } 我得到一个错误消息:当我尝试实例化Interface MyListener does not have constructors – 尽管在我看来除了语法之外没有任何变化。 我误解Kotlin中的接口是如何工作的吗?

Android中的Realm 0.87.5

我已经更新Realm 0.87.5,现在我得到构建这个错误。 你能帮我一下吗? Error:Execution failed for task ‘:app:transformNativeLibsWithMergeJniLibsForDebug’. > com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK lib/x86/librealm-jni.so File1: /Users/[USER_NAME]/.gradle/caches/modules-2/files-2.1/io.realm/realm-android/0.87.5/ab4e1fead1380252dad0e95658e53ea0c113e89c/realm-android-0.87.5.jar File2: /Users/[USER_NAME]/.android/build-cache/97d752c34cee76117e22adcee3a9c2d132f80273/output/jni 根源依赖: 应用模块相关性:

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

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

在gradle应用程序中找不到ant-javafx

在使用JavaFX编写我的第一个应用程序时,我确保JAVA_HOME安装正确,并将javafx-gradle-plugin到我的应用程序中,但是在我的JDK中有一个缺少实际可用的ant-javafx-library的错误: 我的build.gradle和我得到的错误信息如下: // set up the kotlin-gradle plugin buildscript { ext.kotlin_version = ‘1.1.60’ repositories { mavenLocal() // mavenCentral() } dependencies { classpath “org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version” classpath “de.dynamicfiles.projects.gradle.plugins:javafx-gradle-plugin:8.8.2” } } // apply the kotlin-gradle plugin apply plugin: “kotlin” apply plugin: ‘javafx-gradle-plugin’ // add kotlin-stdlib dependencies. repositories { mavenLocal() // mavenCentral() } dependencies { //dependencies from a remote repositor […]

Intellij IDEAexception构建过程终止(XMx700m)

今天我试图在Intellij中编译,但后来我得到这个错误: 错误:构建过程终止exception:“C:\ Program Files \ Java \ jdk-9.0.1 \ bin \ java”-Xmx700m -Djava.awt.headless = true -Djdt.compiler.useSingleThread = true -Dcompile.parallel = false -Drebuild.on.dependency.change = true -Djava.net.preferIPv4Stack = true -Dio.netty.initialSeedUniquifier = 7650118036197354088 -Dfile.encoding = windows-1252 -Duser.language = en -Duser.country = US -Didea.paths .selector = IntelliJIdea2017.3“-Didea.home.path = I:\ Intellij \ IntelliJ IDEA 2017.3.4”-Didea.config.path = C:\ Users \ hadis.IntelliJIdea2017.3 […]

我怎样才能引用从Java的伴侣对象?

我有一个混合的项目, Java和Kotlin类,我想知道如何从我的Java类引用companion objects 。

在Kotlin中定义log TAG常量的最佳方法是什么?

我在我的Android应用程序中创建了我的第一个Kotlin类。 通常为了记录的目的,我有一个名字为TAG的常量。 我会在Java中做什么是: private static final String TAG = MyClass.class.getSimpleName(); 我知道在Kotlin类中我可以用这种方式创建TAG : private val TAG = MyClass::class.java.simpleName 这对于使用Java和Kotlin的项目来说是可以的,但是如果我开始一个仅在Kotlin中的新项目呢? 我怎样才能定义TAG常量? 有没有更多的KOTLIN方式,我没有这个奇怪的建设class.java.simpleName ?

Kotlin三元条件运算符

Kotlin中这个expression的等价物是什么? a ? b : c 这不是Kotlin中的有效代码。