Android Studio and Lint don't generate an error when an IntDef field is assigned a wrong value

南楼画角 提交于 2019-12-24 04:05:09

问题


Here is my code:

Const.kt

package sample.com.sample_app

object Const {

    const val NAVIGATION_MODE_STANDARD = 1
    const val NAVIGATION_MODE_LIST = 2
}

NavigationMode.kt

package sample.com.sample_app

import android.support.annotation.IntDef

import java.lang.annotation.Retention

import java.lang.annotation.RetentionPolicy.SOURCE

@Retention(SOURCE)
@IntDef(Const.NAVIGATION_MODE_LIST, Const.NAVIGATION_MODE_STANDARD)
annotation class NavigationMode

OtherAct.kt

package sample.com.sample_app

import android.os.Bundle
import android.support.v7.app.AppCompatActivity

class OtherAct : AppCompatActivity() {

    @NavigationMode
    private var a: Int = 12

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        a = 34
    }

}

No error or warning from Android Studio or ./gradlew lint

My environment:

buildToolsVersion "28.0.2"
kotlin_version = '1.2.41'
implementation 'com.android.support:appcompat-v7:27.1.1'

回答1:


Unfortunately, it works only for function's parameters and not for the property itself



来源:https://stackoverflow.com/questions/51745440/android-studio-and-lint-dont-generate-an-error-when-an-intdef-field-is-assigned

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!