完整的错误:该调用会导致可移植性问题,因为它具有不同的语言环境,这可能会导致意外的输出。这也可能绕过自定义验证例程。

在我的代码上运行工具,根据我的代码的这一部分,我会遇到此问题:

 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/

10-10 19:30