方法 XXX(String, String, Long) 将长度为 1 的常量字符串传递给字符覆盖方法

Method XXX(String, String, Long) passes constant String of length 1 to character overridden method

我有这个方法:

private String generateDocumentKey(String year, Long version) {
    StringBuilder idKey = new StringBuilder("");
    if (Objects.nonNull(version)) {
        idKey.append(year);
        idKey.append(VERSION);
    }

    return idKey.toString();
}

但 SonarQube 报告此错误:

Method XXX(String, String, Long) passes constant String of length 1 to character overridden method 

idKey.append(VERSION);

这意味着常量 VERSION 当前长度为 1 个字符,其类型 可以 更改为 char 以提高效率。

从长远来看没有意义(版本号在未来的版本中会越来越长),但 SonarQube 只是一个愚蠢的工具,你总是要自己判断它的建议。