You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让编译器识别自定义函数返回true时Android SDK版本≥R

解决方案

你可以通过Android官方提供的@ChecksSdkIntAtLeast注解实现需求,该注解专门用于标记SDK版本校验函数,让编译器能识别函数返回值对应的SDK等级条件,且不会限制函数的调用SDK版本。

步骤1:确保依赖注解库

绝大多数Android项目默认已引入AndroidX Annotation库,若缺失可在模块级build.gradle中添加依赖:

dependencies {
    implementation "androidx.annotation:annotation:1.7.1"
}

步骤2:给目标函数添加注解

修改你的工具类代码,给USE_WINDOW_INSETS()方法添加注解并指定对应的API等级:

object Setup {
    @androidx.annotation.ChecksSdkIntAtLeast(api = Build.VERSION_CODES.R)
    fun USE_WINDOW_INSETS(): Boolean = Build.VERSION.SDK_INT >= Build.VERSION_CODES.R
}

实现效果

添加注解后即可直接使用你期望的写法,编译器会自动完成条件绑定:

  • if (SetupProvider.get().USE_WINDOW_INSETS())代码块内,编译器默认识别SDK版本≥R,调用R以上的API不会报等级警告
  • else代码块内,编译器默认识别SDK版本<R

完全不需要再额外写重复的SDK版本判断逻辑。

内容的提问来源于stack exchange,提问作者prom85

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 17:24:00