在查看由
Android Studio和Gradle插件生成的BuildConfig类时,可以看到使用Boolean.parseBoolean(String)调用初始化BuildConfig.DEBUG字段,而不是使用其中一个布尔文字true或false.
android { buildTypes.debug.buildConfigField 'boolean','SOME_SETTING','true' }
但是看看生成的BuildConfig告诉我谷歌采用了与DEBUG标志不同的方法:
public final class BuildConfig { public static final boolean DEBUG = Boolean.parseBoolean("true"); // more fields here // Fields from build type: debug public static final boolean SOME_SETTING = true; }
使用Boolean.parseBoolean(String)而不是文字有什么好处?
解决方法
BuildConfig类中的布尔文字在代码中使用时会产生IDE警告(至少在Android Studio中).例如,当在布尔表达式中使用它时,Android Studio会(错误地)建议简化布尔表达式,因为常量值总是相同的(对于当前的构建变体).
此警告仅仅是因为Android Studio不知道BuildConfig.soME_SETTING中的最终值可能与其他构建变体不同.
为了保持代码干净且没有警告,您可以通过添加如下IDE注释来告诉Android Studio忽略此特定警告:
但这又会给代码增加一些噪音并降低可读性.通过使用Boolean.parseBoolean(String)方法初始化常量字段,您实际上会欺骗Android Studio,它将无法再完全分析您的布尔表达式,从而不再生成警告.
原文地址:https://www.jb51.cc/android/316591.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。