我有下面這段代碼:如何修復FindBugs的警告「使用非本地化的String.toUpperCase()或String.toLowerCase()」?
/**
* 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)
我怎樣才能正確地解決這一警告(正確的方法),如果我可以肯定的是所有文件名將始終只有帶拉丁字母的名稱?
由於您感興趣的所有字符都以英文字母表示,因此您可以忽略該警告。或者,不要將字符串轉換爲小寫字母,而應使用不區分大小寫的正則表達式。 – biziclop
添加Locale.ENGLISH(或Locale.ROOT)是修正錯誤的正確方法,因此如果在執行此操作後仍然發生錯誤,那麼您可能在FindBugs本身中發現了一個錯誤。 –
@bkail謝謝。請提交您的評論作爲答案,我會接受它。 –