在Kotline中使用Java类时的引用问题

这里有Java Class Base32Decoder.java,Kotlin文件hello.kt中使用了这个类中的代码.

当我try 通过Kotlin File运行Java Code时,出现错误,因为无法建立对Java Class: Base32Decoder的引用.

Error message:

hello.kt:4:25: error: unresolved reference: Base32Decoder

Base32Decoder Java Class无法解析对它的引用.因为这个类是在Kotlin File内部使用的,所以引用需要工作.

Code


fun main(args: Array<String>){
    val Base32Decoder = Base32Decoder()
   val rectangleArea: String = Base32Decoder.base32Decode("JBSWY3DPFQQFO33SNRSCC===")
   println("inside the Kotlin codes:" + rectangleArea)
}

My Question:

当我想在Kotlin Files?中使用Java Code时,如何引用Java Classes

推荐答案

将Java类引用到Kotlin脚本

代码必须是Kotlin可访问的.

这意味着您必须编译(如果您在终端:javac SampleFile.java中编译代码)Base32Decoder.java文件来生成Base32Decoder.class.

现在,在命令行中生成带有指向Kotlin文件的链接的Jar文件:

jar cf app.jar Base32Decoder.class hello.kt

现在,由于您使用的是kotlinc,因此可以在命令行中执行如下代码:

kotlinc -classpath app.jar -script hello.kt

现在,您的代码应该运行得很好.问题是,Kotlin没有进入Base32Decoder.java级的权限.

Java相关问答推荐

使用Java使用fabric.io获取当前部署名称

是否可以从@ TrustMapping中删除特定方法的基路径?

虚拟线程似乎在外部服务调用时阻止运营商线程

@ EnableRouting注释在Kotlin项目中不工作

在模拟超类中设置非setter属性的值

连接Quarkus中的两个异步操作

Chunk(Int)已弃用并标记为要删除

Java-动态绑定-问题-了解

将stringBuilder + forloop转换为stream + map

try 使用预准备语句占位符获取信息时出现Try-With-Resources错误

将双倍转换为百分比

使用迭代器遍历HashMap不会因IF条件而停止

如何在字节数组中反转UTF-8编码?

在Java中将.GRF转换为图像文件

如何对存储为字符串的大数字数组进行排序?

无法在IntStream上应用Collectors.groupingBy

HBox内部的左对齐按钮(如果重要的话,在页码内)

AspectJ编织外部依赖代码,重新打包jar并强制依赖用户使用它

如何在Selenium上继续使用最新的WebDriver版本

将@Transactional添加到Spring框架中链下的每个方法会产生什么效果?