当值不满足要求时如何让 IntelliJ 显示错误 [Kotlin]
How to let IntelliJ show error when value is not met requirement [Kotlin]
这是我尝试做但仍然失败的简化示例
class Definition {
@Target(AnnotationTarget.TYPE, AnnotationTarget.VALUE_PARAMETER)
@IntDef(View.VISIBLE, View.INVISIBLE, View.GONE)
//only 0,4,8 are allowed
@Retention(AnnotationRetention.SOURCE)
annotation class Visibility
}
fun isVisibleView(@Definition.Visibility visibility: Int, viewList: ArrayList<View>, ) {
for (view in viewList) {
view.visibility = visibility
}
}
//I want the ide to SHOW ERROR here since 2 is not in 0,4,8 (show before compile)
isVisibleView(2, visibleItems)
我认为这个问题是关于 IDE 配置或 Kotlin 语法的
总之Enum就够了
IntDef 是 android 特定的,因此您必须为 IntelliJ 找到一个 Android 规则来分析这些注释。
即使你可以让它只在 java 而不是 Kotlin 上工作。
似乎警告将由 lint 生成,但前提是您在 Java 中编写注释,而不是 Kotlin
如本期所述https://youtrack.jetbrains.com/issue/KTIJ-18693
图片来源:安东·马林斯基
这是我尝试做但仍然失败的简化示例
class Definition {
@Target(AnnotationTarget.TYPE, AnnotationTarget.VALUE_PARAMETER)
@IntDef(View.VISIBLE, View.INVISIBLE, View.GONE)
//only 0,4,8 are allowed
@Retention(AnnotationRetention.SOURCE)
annotation class Visibility
}
fun isVisibleView(@Definition.Visibility visibility: Int, viewList: ArrayList<View>, ) {
for (view in viewList) {
view.visibility = visibility
}
}
//I want the ide to SHOW ERROR here since 2 is not in 0,4,8 (show before compile)
isVisibleView(2, visibleItems)
我认为这个问题是关于 IDE 配置或 Kotlin 语法的
总之Enum就够了
IntDef 是 android 特定的,因此您必须为 IntelliJ 找到一个 Android 规则来分析这些注释。
即使你可以让它只在 java 而不是 Kotlin 上工作。 似乎警告将由 lint 生成,但前提是您在 Java 中编写注释,而不是 Kotlin
如本期所述https://youtrack.jetbrains.com/issue/KTIJ-18693
图片来源:安东·马林斯基