使用 checktyle 检查对 toLowerCase()/toUpperCase() 的误用 (#4633)

This commit is contained in:
Glavo
2025-10-08 16:27:57 +08:00
committed by GitHub
parent 7be00f2408
commit 496b403eeb
3 changed files with 15 additions and 2 deletions

View File

@@ -409,7 +409,8 @@ final class ModListPageSkin extends SkinBase<ModListPage> {
@Override
public int compareTo(@NotNull ModListPageSkin.ModInfoObject o) {
return localModFile.getFileName().toLowerCase().compareTo(o.localModFile.getFileName().toLowerCase());
return localModFile.getFileName().toLowerCase(Locale.ROOT)
.compareTo(o.localModFile.getFileName().toLowerCase(Locale.ROOT));
}
}

View File

@@ -139,7 +139,7 @@ public final class CurseForgeRemoteModRepository implements RemoteModRepository
StringUtils.LevCalculator levCalculator = new StringUtils.LevCalculator();
return new SearchResult(response.getData().stream().map(CurseAddon::toMod).map(remoteMod -> {
String lowerCaseResult = remoteMod.getTitle().toLowerCase();
String lowerCaseResult = remoteMod.getTitle().toLowerCase(Locale.ROOT);
int diff = levCalculator.calc(lowerCaseSearchFilter, lowerCaseResult);
for (String s : StringUtils.tokenize(lowerCaseResult)) {

View File

@@ -104,5 +104,17 @@
<module name="RedundantImport"/> <!-- e.g. double import statements: http://checkstyle.sourceforge.net/config_imports.html#RedundantImport -->
<module name="UnusedImports"/> <!-- http://checkstyle.sourceforge.net/config_imports.html#UnusedImports -->
<module name="IllegalImport"/> <!-- checks if import sun.* is used http://checkstyle.sourceforge.net/config_imports.html#IllegalImport -->
<!-- Custom -->
<module name="RegexpSinglelineJava">
<property name="format" value="\.toLowerCase\(\)"/>
<property name="ignoreComments" value="true"/>
<property name="message" value="Should not use String#toLowerCase(), use String#toLowerCase(Locale.ROOT) instead."/>
</module>
<module name="RegexpSinglelineJava">
<property name="format" value="\.toUpperCase\(\)"/>
<property name="ignoreComments" value="true"/>
<property name="message" value="Should not use String#toUpperCase(), use String#toUpperCase(Locale.ROOT) instead."/>
</module>
</module>
</module>