У меня есть этот пример кода:
class MeasureTextView: TextView {
constructor(context: Context?) : super(context)
constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs)
constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr)
constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int, defStyleRes: Int) : super(context, attrs, defStyleAttr, defStyleRes)
companion object{
val UNIT_NONE = -1
val UNIT_KG = 1
val UNIT_LB = 0
}
fun setMeasureText(number: Float, unitType: Int){
val suffix = when(unitType){
UNIT_NONE -> {
EMPTY_STRING
}
UNIT_KG -> {
KG_SUFIX
}
UNIT_LB -> {
LB_SUFIX
}
else -> throw IllegalArgumentException("Wrong unitType passed to formatter: MeasureTextView.setMeasureText")
}
// set the final text
text = "$number $suffix"
}
}
Я хочу использовать во время компиляции функцию автоматического завершения в сочетании с аннотацией IntDef, поэтому, когда я вызываю setMeasureText(...)
,
статические переменные отображаются как параметры аргумента этого метода.
Я искал об этом, и я не смог найти, поддерживает ли Kotlin эти аннотации в стиле java (например, intdef). Поэтому я попробовал это и сделал аннотацию для этого, но он не будет показан в автозавершении.
Мой вопрос: - Поддерживается ли Java-аннотация IntDef в Kotlin (последняя версия)
-
Если это так, как я могу включить ON в Android Studio IDE (если он работает, я не могу заставить компилятор предложить его).
-
Если это не так, есть ли какой-либо метод Kotlin, чтобы сделать это время проверки компиляции