Что такое kotlin, равное полю аннотации Java с ограниченным типом подстановочного знака?

Скажем, у меня есть аннотация в Java:

public @interface Foo { Class<? extends Bar> value(); } public interface Bar {} 

Как мне перевести Foo в котлин? Верно ли, что я мог только вернуться к Java в такой ситуации?

    Аннотации Котлина не могут иметь методов-определений. Однако они могут иметь параметры конструктора. Я думаю, что это работает так, как вы хотите:

     import kotlin.reflect.KClass interface Bar class Foo : Bar @Target(AnnotationTarget.FUNCTION) annotation class Test(val value: KClass<out Bar>) @Test(Foo::class) fun testAnnotation() { println("Test") } 

    Обратите внимание на модификатор KClass параметре типа KClass . Он делает параметр типа ковариантным , то есть он может быть типа Bar или любого типа, который реализует Bar .

    Interesting Posts

    Делать элементы меню прозрачными при расширении CollapsingToolbarLayout

    В чем разница при добавлении частного модификатора к аргументам в конструкторе Kotlin?

    Мой RecyclerView не будет уведомлен соответствующим образом

    Метод равенства для класса данных в котлине

    Наследовать от абстрактного класса с умножением варов в Котлине

    У меня ошибка в студии android с kotlin

    Ошибка экземпляра экземпляра в kotlin: умный приведение к типу невозможно

    Почему я должен возвращать Unit.INSTANCE при реализации на Java функции Kotlin, которая возвращает Unit?

    Используя черты с классами данных в Котлине?

    Веб-программирование Kotlin без использования Intelli-J Ultimate?

    Многопоточность с использованием Kotlin Corouts

    Android-библиотека не может компилировать kotlin

    Pass listOf (mapOf (x, y, z)) как параметр в Kotlin

    Чтение файла Kotlin, использование блока, не перехватывающего все исключения

    Не удается запустить запрос «Where In» в Котлине

    Давайте будем гением компьютера.