Articles of отражение в

Получить экземпляр объекта из класса <*> (Отражение)

Некоторые предпосылки – я пытаюсь написать общий способ переопределения значений, исходящих от сервера, не зная точно, на каком классе они должны быть установлены. Так что я делаю: Я смотрю на ключ / значение, полученное с сервера, а затем начинаю искать (итерации) в объекте «Пользователь» и все его поля – если одно из полей соответствует тому, […]

Тип параметра проверки Kotlin

При работе с отражением Java я могу сделать что-то вроде этого: method.getParameterTypes()[i] который дает мне параметр i type ( Class ). Как я могу добиться этого, используя KCallable Kotlin? Я попытался сделать что-то вроде этого: callable.parameters[i].type но единственное, что я нашел, это type.javaType но он возвращает Type который мне совсем не помог. Я также пробовал […]

Объекты компаньона Котлина и отражение

В чем-то интереснее использовать сопутствующие объекты и отражение Java. Я не уверен, что это задумано или нет, или если я просто не понимаю вещи полностью. У меня есть этот код public class TestClass { companion object { public platformStatic var data: String? = null } } Поле data конечном итоге заполняется посредством отражения от другого […]

Как сравнить класс <*> с примитивным типом Java в коробке без предупреждений компилятора kotlin

Я использую Kotlin для написания чего-то, что работает с API-интерфейсами отражения Java. Мой ввод – это Class<*> и мне нужно решить, является ли этот тип двойным или целочисленным, но мне нужно поддерживать как примитивы, так и типы с нулевым значением, используемые в Java. Этот пример игрушек делает то, что я пытаюсь сделать: when(type) { java.lang.Double::class.java, […]

Аннотации getAnnotation для Java, используемые для метода Kotlin, возвращают null

Скажем, у меня есть следующий интерфейс: interface AppRepository : GraphRepository<App> { @Query("""MATCH (a:App) RETURN a""") fun findAll(): List<App> } В тесте я хочу проверить специфику строки запроса, и поэтому я делаю open class AppRepositoryTest { lateinit @Autowired var appRepository: AppRepository @Test open fun checkQuery() { val productionMethod = appRepository.javaClass.getDeclaredMethod("findAll") val productionQuery = productionMethod!!.getAnnotation(Query::class.java) //demo test […]

Отражение Java-конструктора исключает исключение с помощью закрытых классов

У меня есть следующий запечатанный класс в проекте Котлин: sealed class Test { abstract val test: String @NoArg data class Test1( override val test: String ) : Test() @NoArg data class Test2( override val test: String ) : Test() } @NoArg является маркером, а компилятор настроен на создание конструктора аргументов без аргументов для этих классов. […]

Как найти методы с аннотацией в классе?

Учитывая аннотацию @Target(AnnotationTarget.FUNCTION) @Retention(AnnotationRetention.RUNTIME) annotation class MyAnnotation Как найти методы с помощью этой аннотации? Вот как я догадался: val cls = myObject.javaClass.kotlin val found = cls.memberFunctions.filter { it.annotations.contains( ??? ) }

Проблема отзыва Котлина

У меня эти методы объявлены в библиотеках Java: Engine.java: public <T extends EntitySystem> T getSystem(Class<T> systemType) Entity.java: public <T extends Component> T getComponent(Class<T> componentClass) Теперь я использую эти методы LOT, и мне бы очень хотелось использовать MyComponent::class (т.е. отражение kotlin) вместо более подробного javaClass<MyComponent>() всюду. EntitySystem My EntitySystem и Component написаны в Kotlin. Поэтому я […]

Kotlin: Reified generics, похоже, не работают правильно для сравнения hash / equals

У меня есть карта KClass to Int . Затем я имею функцию, которая имеет тип reified generic. Тогда я ожидал бы следующую ситуацию, чтобы дать мне Int связанный с Boolean::class val kclassToInt = mapOf(Boolean::class to 1, Byte::class to 1, Short::class to 2) inline fun <reified T> myExpectations() = assertEquals(1, kclassToInt.getRaw(T::class), "Why doesn't it work? :'(") […]

Получение ссылки на функцию Kotlin как метод Java

У меня есть метод Java, который принимает параметр Method : void doSomethingWithMethod(Method m) { … } И у меня есть класс Kotlin, который содержит функцию: class MyClass { fun myFunction() : List<Something> { … } } Я могу получить ссылку на функцию с MyClass::myFunction , но я не вижу способа передать ее в метод doSomethingWithMethod […]

Intereting Posts
Котлин: Подавить неиспользуемое имущество? Как использовать DatePickerDialog в Котлине? Кинжал и Котлин. Кинжал не генерирует классы компонентов Конструкторы Котлин: первичные и вторичные Область применения верхнего уровня Kotlin Может ли класс данных Kotlin иметь более одного конструктора? искать все разделы и выживать автоматическое перебалансирование потребителей Kafka Записать в значение парного нуля в kotlin RxAndroid, Как обнаружить, если наблюдаемое закончило излучение intelliJ IDEA сгенерированный файл ant не выводит файлы Как я могу повторно использовать / составлять часть запроса JOOQ в методе репозитория? В Котлине я могу переопределить некоторые существующие операторы, но как насчет создания новых операторов? Как скрыть навигационную панель андроида или квадратную кнопку в навигационной панели Загрузка и установка APK с использованием волейбола Запрещено разрешение на использование Firebase