Я пытаюсь преобразовать свой Java-код HomePage.class
в Kotlin. Я следую инструкциям на Kotlin.org :
GetClass ()
Чтобы получить информацию о типе от объекта, мы используем свойство расширения javaClass.
val fooClass = foo.javaClass
- Разделение кода Kotlin2JavaScript на несколько модулей maven
- Дженерики: абстрактный класс и тип ребенка
- использование intellij-markdown в проекте kotlin android
- ошибка в аннотациях kotlin?
- Kotlin - Is kotlin содержит класс Object, такой как базовый класс в java?
Вместо Java
Foo.class
используйтеFoo::class.java
.
val fooClass = Foo::class.java
У меня есть класс под названием HomePage, который расширяет AppCompatActivity (в Android). Я использую Android Studio. Я попытался сделать HomePage::class.java
и у него есть ошибка: Unresolved reference: java
Как мне заставить это работать? Благодарю.
Если кто-то из старой версии Kotlin обнаруживает это через Google:
Вероятно, проблема заключается в том, что вы забыли о зависимости от библиотек отражения, которые были необходимы для многих (всех?) Отражающих функций Котлина.
С помощью новейшей беты библиотеки отражений теперь являются частью стандартной библиотеки, поэтому она работает для вас сейчас.
Оказывается, я использовал более старую версию Kotlin, и она не была настроена правильно. Я редактировал файл градиента, чтобы включить последнюю бета-версию, и выбрал параметр, который настраивает Kotlin, и теперь он работает.
В градиенте:
buildscript { ext.kotlin_version = '1.0.0-beta-3594' repositories { mavenCentral() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version" } } ... dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" }
Я скопировал класс из другого проекта и забыл изменить имя пакета класса. когда я изменился, он исправлен
Я положил начало Gradle (приложение модуля)
apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions'
а также
implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
в разделе зависимостей
В build.gradle (Project)
buildscript { ext.kotlin_version = '1.2.0' repositories { jcenter() google() } dependencies { classpath 'com.android.tools.build:gradle:3.0.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } }