gpt4 book ai didi

annotations - Kotlin 注释 IntDef

转载 作者:IT老高 更新时间:2023-10-28 13:28:29 29 4
gpt4 key购买 nike

我有这个代码示例:

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)。所以我已经尝试过了,并为此做了注释,但它不会在自动完成中显示。

我的问题:- Kotlin 是否支持 Java 注解 IntDef(最新版本)

  • 如果是,我如何在 Android Studio IDE 中打开(如果有效,我无法让编译器给出建议)。

  • 如果不是,是否有任何 Kotlin 方式进行编译时检查

最佳答案

奇怪的事情,但这个问题在搜索之前与 right answer 相同

复制到这里:

import android.support.annotation.IntDef
public class Test {

companion object {

@IntDef(SLOW, NORMAL, FAST)
@Retention(AnnotationRetention.SOURCE)
annotation class Speed

const val SLOW = 0
const val NORMAL = 1
const val FAST = 2
}

@Speed
private var speed: Int=SLOW

public fun setSpeed(@Speed speed: Int) {
this.speed = speed
}
}

关于annotations - Kotlin 注释 IntDef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37833395/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com