尝试从 Kotlin 文件运行 Java 代码时出现 Kotlin 错误“未解析的引用”

问题描述 投票:0回答:2

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 类?

java kotlin jvm kotlinc
2个回答
1
投票

代码必须可供 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
类。


0
投票

你能解决这个问题吗?我现在也遇到同样的问题。

© www.soinside.com 2019 - 2024. All rights reserved.