ho questo codice di esempio:Kotlin annotazione IntDef
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"
}
}
voglio essere in grado di utilizzare, al momento della compilazione, la funzione di completamento automatico in combinazione con IntDef annotazioni, così quando invoco setMeasureText(...)
, statica le variabili sono mostrate come opzioni all'argomento di questo metodo.
Ho cercato su questo, e non ho potuto trovare se Kotlin supportato questa annotazioni in stile java (intdef per esempio). Così l'ho provato, e ho fatto un'annotazione per questo, ma non verrà mostrato nel completamento automatico.
La mia domanda: - è l'annotazione Java IntDef supportato in Kotlin (ultima versione)
Se lo è, come posso girare in ON nel Android Studio IDE (se funziona, posso' t ottenere il compilatore di suggerirlo).
Se non lo è, c'è qualche Kotlin vie del make questo compilazione controlli orari
[Perché non usare 'enum'] (http://stackoverflow.com/questions/5143256/why-was-avoid-enums-where-you -solo-need-int-rimosso-dal-androidi performanc)? – miensol
nessuna ragione solo patetica. Enums sono stati scoraggiati un paio di anni fa da Google per motivi di prestazioni. Sono abituato a preferire le costanti statiche con annotazioni intdef. Ma quando sono passato a Kotlin la funzionalità è scomparsa –
Possibile duplicato di [Come utilizzare le annotazioni typedef di Android Support in kotlin?] (Http://stackoverflow.com/questions/35976002/how-to-use-android-support-typedef -annotations-in-kotlin) –