java - 有没有办法为 Kotlin 顶级函数引用 Java 类?

标签 java kotlin

我想使用 Class.getResourceAsStream() 在顶级函数中加载资源。

有没有什么方法可以获取对顶层函数将被编译成的类的引用,以便我可以编写,例如

val myThing = readFromStream(MYCLASS.getResourceAsStream(...))

最佳答案

我发现的另一种方法是在顶级函数中声明一个本地类或匿名对象并获取它的enclosingClass :

val topLevelClass = object{}.javaClass.enclosingClass

注意:为了工作,这个声明应该放在顶层或顶层函数内。

然后您可以使用 topLevelClass作为 Class<out Any> :

fun main(args: Array<String>) {
    println(topLevelClass) // class MyFileNameKt
}

关于java - 有没有办法为 Kotlin 顶级函数引用 Java 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34951894/

相关文章:

java - 如何避免 Java 中的多个 If 语句?

java - Hibernate映射异常[尝试过以前的解决方案]

kotlin - Kotlin 有原始类型吗?

unit-testing - 是否有 Kotest 断言来测试列表是否包含具有给定属性的元素?

java - 在构造函数方法上调用方法

java - 使用 Java 代码删除 Android Q 中的非拥有文件

java - 确保特定用户只能看到自己的用户详细信息 - 使用 Spring

kotlin - 为什么在调用某些类函数时包含()?

Kotlin 和 MockK 抛出 com.sun.tools.attach.AttachNotSupportedException : no providers installed

android - 找不到符号类数据绑定(bind) impl