Kotlin 中使用 Java 类时的引用问题。有 Java 类
Base32Decoder.java
,该类的代码在 Kotlin 文件中使用 hello.kt
。
当我尝试通过 Kotlin 文件运行 Java 代码时,出现错误,因为无法建立对 Java 类的引用
Base32Decoder
。
错误信息:
hello.kt:4:25:错误:未解析的参考:Base32Decoder
Base32Decoder
Java 类无法解析对其的引用。由于此类在 Kotlin 文件内使用,因此引用需要起作用。
代码
fun main(args: Array<String>){
val Base32Decoder = Base32Decoder()
val rectangleArea: String = Base32Decoder.base32Decode("JBSWY3DPFQQFO33SNRSCC===")
println("inside the Kotlin codes:" + rectangleArea)
}
当我想在 Kotlin 文件中使用 Java 代码时,如何引用 Java 类?
代码必须可供 Kotlin 访问。这意味着您必须编译(如果您在终端中编译代码:
javac SampleFile.java
Base32Decoder.java
文件以生成 Base32Decoder.class
。
现在生成 JAR 文件,并在命令行中包含指向 Kotlin 文件的链接:
jar cf app.jar Base32Decoder.class hello.kt
现在既然你使用了
kotlinc
,你就可以在命令行中执行代码,如下所示:
kotlinc -classpath app.jar -script hello.kt
现在您的代码应该可以正常运行了。问题是 Kotlin 无法访问
Base32Decoder.java
类。
你能解决这个问题吗?我现在也遇到同样的问题。