【问题标题】:Android Studio and Lint don't generate an error when an IntDef field is assigned a wrong value为 IntDef 字段分配错误值时,Android Studio 和 Lint 不会生成错误
【发布时间】:2018-08-08 11:21:53
【问题描述】:

这是我的代码:

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
    }

}

Android Studio 或./gradlew lint 没有错误或警告

我的环境:

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

【问题讨论】:

  • 不幸的是,它仅适用于函数的参数,不适用于属性本身
  • @Mike,您为什么不将您的评论转换为答案?

标签: android annotations lint


【解决方案1】:

不幸的是,它只对函数的参数有效,对属性本身无效

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-09
    • 1970-01-01
    • 2020-01-31
    • 2012-04-05
    • 1970-01-01
    • 1970-01-01
    • 2016-01-21
    • 2019-11-01
    相关资源
    最近更新 更多