Nob*_*ial 54 eclipse android android-lint
我最初这样叫String.format:
return String.format("%s %f %f", anotherString, doubleA, doubleB);
Run Code Online (Sandbox Code Playgroud)
这使Android Lint生成此警告:
隐式使用默认语言环境是一个常见的错误来源:使用String.format(Locale,...)代替
所以我Locale.US根据我在http://developer.android.com/reference/java/util/Locale.html上的"警惕默认语言环境"部分中的内容将其更改为显式使用:
return String.format(Locale.US, "%s %f %f", anotherString, doubleA, doubleB);
Run Code Online (Sandbox Code Playgroud)
为什么Android Lint仍会生成相同的警告?我必须清理Eclipse中的项目以摆脱它,当大多数警告只在违规行被修复后消失.我不确定我是否做错了.
Ale*_*ado 54
清洁和重建项目应该有效.
顺便说一下,你可能想用Locale.getDefault()"照顾"不是用英文写的文字.
大小写转换时隐含的默认语言环境
调用String#toLowerCase()或#toUpperCase()不指定显式语言环境是错误的常见来源.原因是这些方法将使用用户设备上的当前区域设置,即使代码在开发应用程序时似乎正常工作,它也会在某些区域设置中失败.例如,在土耳其语语言环境中,i的大写替换不是I.
如果您希望方法只执行ASCII替换,例如转换枚举名称,请调用String#toUpperCase(Locale.US).如果您确实想使用当前区域设置,请String#toUpperCase(Locale.getDefault())改为调用.
http://developer.android.com/reference/java/util/Locale.html#default_locale
| 归档时间: |
|
| 查看次数: |
31923 次 |
| 最近记录: |