ADTをv。21に更新し、このコードに新しい警告が表示されました。
if (e.getMessage().toLowerCase().contains("blabla"))
Implicitly using the default locale is a common source of bugs: Use toLowerCase(Locale) instead
だから私は試します:
if (e.getMessage().toLowerCase(Locale.ENGLISH).contains("blabla"))
しかし、まだエラーが残っています!これをどのように修正しますか?
特にテキストが常に英語であることを確信できない場合は、Locale.getDefault()
を使用する必要があります。また、lintを再度実行するかプロジェクトをクリーンアップすると、通常発生しているようなlintエラーが消えます。
あなたは単にあなたのプロジェクトをきれいにする必要があります
実際、ユーザーにテキストを表示することが目的の場合は、Locale.getDefault()
を使用します。ただし、これがLintチェックの重要なポイントであるため、目標がマシンの可読性/使用性である場合は常に_Locale.US
_を使用する必要があります。 Locale.getDefault()
を指定しない場合、すでに暗黙的に_を使用しているため、デバイスに独自のデフォルトロケールが指定されている場合、バグを見つけるのが困難になる可能性があります。他の皆が提案したように、どちらの方法でもプロジェクトをきれいにする必要があるようです。
locale.getDefault()を使用して、プロジェクトをクリーンにします。
これはおそらくLintのバグです。コードの行全体をカットしてみてください
if (e.getMessage().toLowerCase(Locale.ENGLISH).contains("blabla"))
保存してから貼り付けます。
プロジェクトのクリーニングがうまくいかなかったため、コードにデフォルトのロケールを追加しました。
String.format(Locale.getDefault(), "firstname: %s, lastname: %s", firstName, lastName));
プロジェクトによっては、 Locale の説明をご覧ください。