NewApi lint 不同的行为

NewApi lint different behaviour

最低api等级为21的代码:

interface SampleInterface {

    fun interfaceFun() {
        val value = HashMap<String, String>().getOrDefault("a", "b")
    }

    companion object {
        @JvmStatic
        fun companionFun() {

        }
    }
}

IDE 发现两个问题:

  1. getOrDefault 需要 api 等级 24
  2. @JvmStatic 伴侣方法还需要 api 级别 24

./gradlew lintDebug 仅针对问题 1 而非问题 2 中止构建。有什么区别?

根据 Supported Java 8 language features and APIs chart,Android 的所有 API 级别都支持默认和静态接口方法。