完整的错误:该调用会导致可移植性问题,因为它具有不同的语言环境,这可能会导致意外的输出。这也可能绕过自定义验证例程。
在我的代码上运行工具,根据我的代码的这一部分,我会遇到此问题:
if ("paid".equals(type.toLowerCase())) {
return PaymentType.PAID.getDescription();
}
我真的不明白这里的代码应该是什么问题?
最佳答案
toLowerCase()
和toUpperCase()
方法使用默认语言环境。根据语言环境和要转换的字符串中的字符,这可能会产生不同的结果。有点像默认的编码问题(除非您不喜欢使用不常见的字符,否则不太可能咬到您的屁股)。
您可以通过明确指定toLowerCase(Locale.ENGLISH)
或仅使用"paid".equalsIgnoreCase(type)
来避免该警告。
关于java - 错误: the call causes portability problems because it has different locales,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43361816/