java - 如何修复 FindBugs 的警告 "Use of non-localized String.toUpperCase() or String.toLowerCase()"?

标签 java findbugs

我有以下代码:

/**
 * Performs the filename extension check (command-line argument validity).
 * @param valid True, if the check should be performed.
 * @param filename File name to test.
 * @return False, if the test was done and the filename does not end with
 *  ".xml". Value of valid otherwise.
 */
private boolean checkFileNameExtension(final boolean valid,
    final String filename) {
    boolean result = valid;
    if (valid
        && !filename.toLowerCase(Locale.ENGLISH).endsWith(".xml")) {
        this.logger.error("File doesn't have XML extension.");
        result = false;
    }
    return result;
}

FindBugs 提示 toLowerCase 调用:

[WARNING] FindBugs: L I Dm: Use of non-localized String.toUpperCase() or 
String.toLowerCase() in [...]checkFileNameExtension(boolean, String)

如果我可以确定所有文件名的名称始终只包含拉丁字母,我该如何正确修复该警告(正确的方法)?

最佳答案

添加 Locale.ENGLISH(或 Locale.ROOT)是修复错误的正确方法,因此如果在添加后 FindBugs 仍然报告该错误,那么您可能在 FindBugs 本身中发现了错误。

关于java - 如何修复 FindBugs 的警告 "Use of non-localized String.toUpperCase() or String.toLowerCase()"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31234667/

相关文章:

java - spring messaging 将 json 字符串转换为映射

java - FindBugs 排除过滤器的问题

java - 当根项目不包含任何类时,Sonar/findbugs 失败

java - 如何检测记录器语句中的字符串连接?

java - 哪个版本的 FindBugs 可以在 Java 1.4 上运行?

java - 如何配置 GlassFish 日志记录以在时间戳中显示毫秒?

java - IntelliJ IDEA : Error:scalac: Class javax. servlet.ServletException 未找到 - 继续 stub

java - 方法的返回值

java - getBytes() 在 Windows (Java 9) 下按预期工作,但在 Linux 下不起作用

java - 方法忽略异常返回值: FindBugs