当值不满足要求时如何让 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

https://developer.android.com/studio/write/annotations?fbclid=IwAR2duPFqsMx1VPDlK0nyt8-mAKJyLw_WAjY5GQMIHH__-FMpRV9SNJpqY6k

图片来源:安东·马林斯基