Получить ссылку на класс из функции верхнего уровня в kotlin

Я написал короткую программу, которая не требует каких-либо классов и, в свою очередь, включает только функции верхнего уровня.

Чтобы найти местоположение вашего jar из java-кода, вы пишете

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

Но поскольку я не объявлял какие-либо классы в моем котлинском коде, я не знаю, как получить ссылку на класс.

Моя текущая реализация – это

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

который, очевидно, очень плохой код.

Поэтому мой вопрос: как получить ссылку на класс в kotlin без объявления каких-либо ненужных классов. Любые намеки оценили 🙂

Вы можете объявить класс, но анонимный, используя выражение объекта , чтобы он не был видимым для окружающего кода:

 val jarPath = object {}.javaClass.protectionDomain.codeSource.location.toURI().path 
Intereting Posts
Kotlin: Невозможно объявить аргумент типа mutableListOf в определении класса Android Espresso IntentsMatcher работает на новом устройстве, но не в старом Kotlin – присвоить значение переменной enum переменной без значения. Android Studio 3.0 beta2 Конструктор по умолчанию для IntentService (kotlin) Инфиксная нотация и с (…) не работают, как я ожидал Как динамически добавлять TextViews в мой макет на основе содержимого файла JSON? RecyclerView с несколькими макетами – Jerky Ошибка: супертипы следующих классов не могут быть разрешены. Убедитесь, что у вас есть необходимые зависимости в пути к классам Устаревшее предупреждение Kotlin Runtime в Android Studio torgadoFX togglebutton не имеет текстового свойства Почему я получаю: null не может быть применен к непустому типу android.widget.SearchView? Kotlin TypeToken Ошибка «Неразрешенная ссылка» Сеттер для поля удаляется по типу проекции Как связать событие onClick из представления с помощью Android Binding Library и Kotlin?