ChecksSdkIntAtLeast 无法正常工作
ChecksSdkIntAtLeast is not working properly
我正在尝试使用 @ChecksSdkIntAtLeast 注释将我们的 java 实用函数转换为不需要 @SuppressLint("NewApi")
.
的 kotlin 属性
但无论如何我写了 属性,它停止了 if
的两个分支的红色下划线代码。
演示:
@get:ChecksSdkIntAtLeast(api = Build.VERSION_CODES.O)
val isAtLeastOreo: Boolean
get() = Build.VERSION.SDK_INT >= Build.VERSION_CODES.O
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
manager.getNotificationChannel("general")
} else {
manager.getNotificationChannel("general") // CORRECTLY UNDERLINED
}
if (isAtLeastOreo) {
manager.getNotificationChannel("general")
} else {
manager.getNotificationChannel("general") // NOT UNDERLINED - WHY??
}
如果我把它变成函数而不是 getter,同样的事情也会发生。唯一可行的方法是使用 lambda,但后来我失去了 if-else 结构,需要大量的地方进行重构。
问题已于 8 月 23 日报告。正在等待回复
我正在尝试使用 @ChecksSdkIntAtLeast 注释将我们的 java 实用函数转换为不需要 @SuppressLint("NewApi")
.
但无论如何我写了 属性,它停止了 if
的两个分支的红色下划线代码。
演示:
@get:ChecksSdkIntAtLeast(api = Build.VERSION_CODES.O)
val isAtLeastOreo: Boolean
get() = Build.VERSION.SDK_INT >= Build.VERSION_CODES.O
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
manager.getNotificationChannel("general")
} else {
manager.getNotificationChannel("general") // CORRECTLY UNDERLINED
}
if (isAtLeastOreo) {
manager.getNotificationChannel("general")
} else {
manager.getNotificationChannel("general") // NOT UNDERLINED - WHY??
}
如果我把它变成函数而不是 getter,同样的事情也会发生。唯一可行的方法是使用 lambda,但后来我失去了 if-else 结构,需要大量的地方进行重构。
问题已于 8 月 23 日报告。正在等待回复