tôi có mẫu mã này:Kotlin Chú 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"
}
}
Tôi muốn để có thể sử dụng, tại thời gian biên dịch, tính năng tự động hoàn thành kết hợp với IntDef chú thích, vì vậy khi tôi gọi setMeasureText(...)
, các tĩnh biến được hiển thị dưới dạng tùy chọn đối số của phương thức này.
Tôi đã tìm kiếm về điều này và tôi không thể tìm thấy nếu Kotlin hỗ trợ chú thích kiểu java này (ví dụ: intdef). Vì vậy, tôi đã thử nó, và thực hiện một chú thích cho điều này, nhưng nó sẽ không hiển thị trong tự động hoàn thành.
Câu hỏi của tôi: - Là Java chú thích IntDef hỗ trợ trong Kotlin (phiên bản mới nhất)
Nếu có, làm thế nào tôi có thể biến ở ON trong Android Studio IDE (nếu nó hoạt động, tôi có thể' t có được trình biên dịch để đề xuất nó).
Nếu nó không phải là, là có bất kỳ Kotlin chiều này làm cho biên dịch kiểm tra thời gian
[Tại sao bạn không sử dụng 'enum'] (http://stackoverflow.com/questions/5143256/why-was-avoid-enums-where-you -only-need-ints-removed-from-androids-performanc)? – miensol
không có lý do nào chỉ là một thảm hại. Enums đã được khuyến khích một vài năm trước bởi google vì lý do hiệu suất. Tôi được sử dụng để thích các hằng số tĩnh với chú thích intdef. Nhưng khi tôi đổi sang Kotlin, tính năng đó đã biến mất –
Bản sao có thể có của [Cách sử dụng chú thích hỗ trợ Android typedef trong kotlin?] (Http://stackoverflow.com/questions/35976002/how-to-use-android-support-typedef -anotations-in-kotlin) –