Error: the call causes portability problems because it has different locales
Error: the call causes portability problems because it has different locales
完整错误:调用导致可移植性问题,因为它具有不同的区域设置,这可能会导致意外输出。这也可能绕过自定义验证例程。
运行 一个针对我的代码的工具 我遇到这个问题取决于我的这部分代码:
if ("paid".equals(type.toLowerCase())) {
return PaymentType.PAID.getDescription();
}
我真的不明白这段代码应该是什么问题?
toLowerCase()
和 toUpperCase()
方法使用默认语言环境。根据语言环境和您正在转换的字符串中的字符,这可能会产生不同的结果。这有点像默认编码问题(除了不太可能咬你的屁股,除非你使用不常见的字符)。
您可以通过显式指定 toLowerCase(Locale.ENGLISH)
或仅使用 "paid".equalsIgnoreCase(type)
.
来避免警告
完整错误:调用导致可移植性问题,因为它具有不同的区域设置,这可能会导致意外输出。这也可能绕过自定义验证例程。
运行 一个针对我的代码的工具 我遇到这个问题取决于我的这部分代码:
if ("paid".equals(type.toLowerCase())) {
return PaymentType.PAID.getDescription();
}
我真的不明白这段代码应该是什么问题?
toLowerCase()
和 toUpperCase()
方法使用默认语言环境。根据语言环境和您正在转换的字符串中的字符,这可能会产生不同的结果。这有点像默认编码问题(除了不太可能咬你的屁股,除非你使用不常见的字符)。
您可以通过显式指定 toLowerCase(Locale.ENGLISH)
或仅使用 "paid".equalsIgnoreCase(type)
.