从kotlin中的顶级函数获取类引用

时间:2016-07-06 18:01:53

标签: class kotlin

我写了一个简短的程序,它不需要任何类,反过来只需要顶级函数。

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

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

但是因为我没有在我的kotlin代码中声明任何类,所以我不知道如何获得类引用。

我目前的实施是这个

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

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

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

1 个答案:

答案 0 :(得分:9)

您可以使用object expression声明一个类,但是匿名的类,以便周围的代码无法看到它:

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