在 Kotlin 中从顶层函数获取类引用

9

我写了一个简短的程序,它不需要任何类,由顶层函数组成。

要从Java代码中找到您的JAR文件位置,您可以编写以下代码:

MyClass.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath()

但是,由于我在Kotlin代码中没有声明任何类,我不知道如何获得类引用。

目前我的实现方式如下:

class Ref
val jarPath = Ref::class.java.protectionDomain.codeSource.location.toURI().path

很明显,这是非常糟糕的代码。

那么我的问题是,如何在不声明任何不必要的类的情况下,在Kotlin中获取一个类引用。欢迎任何提示:)


代码并不那么糟糕 ;) - voddan
1个回答

11
您可以声明一个类,但使用对象表达式创建一个匿名类,这样它就不会对周围的代码可见:

您可以声明一个类,但使用对象表达式创建一个匿名类,以便它对周围的代码不可见:

val jarPath = object {}.javaClass.protectionDomain.codeSource.location.toURI().path

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接