2016-07-06 49 views
5

ho scritto un breve programma che non richiede tutte le classi e in consits sua volta di soli funzioni di livello superiore.Get riferimento classe dalla funzione di livello superiore in Kotlin

Per trovare la posizione del vostro vaso dal codice Java si scrive

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

Ma come non mi dichiaro tutte le classi nel mio codice Kotlin non so come ottenere un riferimento di classe.

mio attuale implementazione è questo

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

che è ovviamente molto cattivo codice.

Quindi la mia domanda è, come faccio a ottenere un riferimento di classe in Kotlin senza dichiarare tutte le classi unneccesary. Eventuali suggerimenti apprezzato :)

+0

il codice non è poi così male;) – voddan

risposta

7

È possibile dichiarare una classe, ma un anonimo utilizzando il object expression, in modo che non sarà visibile al codice circostante:

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