【问题标题】:NewApi lint different behaviourNewApi lint 不同的行为
【发布时间】:2020-03-29 02:38:57
【问题描述】:

最低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。有什么区别?

【问题讨论】:

  • 是什么让你认为@JvmStatic 需要 API 级别 24?
  • @ianhanniballake IDE 警报。顺便说一下,它只在Intellij Ultimate 中可见,在Android Studio 中不可见。用警报更新了问题。
  • 听起来 IntelliJ Ultimate 并不知道所有 API 级别都完全支持这一点。

标签: android kotlin lint


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-18
    • 1970-01-01
    • 2021-05-24
    • 1970-01-01
    • 1970-01-01
    • 2019-05-26
    • 1970-01-01
    相关资源
    最近更新 更多