Я пытаюсь определить StringDef в kotlin:
@Retention(AnnotationRetention.SOURCE)
@StringDef(NORTH, SOUTH)
annotation class FilterType {
companion object {
const val NORTH = "NORTH"
const val SOUTH = "SOUTH"
}
}
Я думаю, что-то не так в приведенном выше коде.
// I can send anything to this method, when using my kotlin stringDef
private fun takeString(@DirectionJava.Direction filterType: String) {
Я хочу, чтобы котлин-эквивалент java был ниже:
public class DirectionJava {
public static final String NORTH = "NORTH";
public static final String SOUTH = "SOUTH";
@Retention(RetentionPolicy.SOURCE)
@StringDef({
NORTH,
SOUTH,
})
public @interface Direction {
}
}
Вызов java, определенного StringDef, работает из kotlin
// This works as expected, the Java-written string def
// restricts what I can pass to this method
private fun takeString(@DirectionJava.Direction filterType: String) {
Где я ошибсяКак вы определяете StringDef в Kotlin?