這是我嘗試做但仍然失敗的簡化示例
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 語法的
uj5u.com熱心網友回復:
總之列舉就足夠了。
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
信用:安東馬林斯基
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/411958.html
標籤:
