2016-07-06 16 views
5

Napisałem krótki program, który nie wymaga żadnych zajęć, a z kolei składa się wyłącznie z funkcji najwyższego poziomu.Uzyskaj odwołanie do klasy z funkcji najwyższego poziomu w kotlince

Aby znaleźć lokalizację Twojego JAR jest z kodu java piszesz

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

Ale jak nie ogłoszono żadnych klas w moim kodu Kotlin nie wiem jak dostać się odniesienie klasy.

Moja obecna implementacja jest to

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

co jest oczywiście bardzo zły kod.

Moje pytanie brzmi: w jaki sposób uzyskać odniesienie do klasy w kotlinach bez zadeklarowania żadnych niepotrzebnych klas. Wszelkie wskazówki mile widziane :)

+0

kod nie jest tak źle;) – voddan

Odpowiedz

7

Można zadeklarować klasę, ale anonimowy jeden pomocą object expression, dzięki czemu nie będą widoczne dla otaczającego kodu:

val jarPath = object {}.javaClass.protectionDomain.codeSource.location.toURI().path 
Powiązane problemy