首页 文章

从kotlin中的顶级函数获取类引用[重复]

提问于
浏览
7

这个问题在这里已有答案:

我写了一个简短的程序,它不需要任何类,而只需要顶级函数 .

从你编写的java代码中找到jar的位置

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

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

我目前的实施是这样的

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

这显然是非常糟糕的代码 .

所以我的问题是,如何在不声明任何不必要的类的情况下在kotlin中获取类引用 . 任何提示赞赏:)

1 回答

  • 9

    您可以使用object expression声明一个类,但是匿名的类,以便它对周围的代码不可见:

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

相关问题