ソナーでこの警告が表示されます:
'HashMap'のような実装タイプの使用は避けてください。代わりにインターフェースを使用してください
どういう意味ですか?
この警告が表示されるクラスは次のとおりです。
class A {
private HashMap<String, String> map=new HashMap<String, String>();
//getters and setters
}
ソナーでの警告を避けるための適切な解決策が必要です。
ソナーでこの警告が表示されます:
'HashMap'のような実装タイプの使用は避けてください。代わりにインターフェースを使用してください
どういう意味ですか?
この警告が表示されるクラスは次のとおりです。
class A {
private HashMap<String, String> map=new HashMap<String, String>();
//getters and setters
}
ソナーでの警告を避けるための適切な解決策が必要です。
常にインターフェースにコーディングする必要があります。すなわち。この場合、フィールドを次のように宣言する必要があります。
private Map<String, String> map= new HashMap<String, String>();
このように、変数を使用するものはすべて、変数を。ではなくmap
型として扱います。Map
HashMap
これにより、コードを変更することなく、後日、マップの基盤となる実装を交換できます。あなたはもはや縛られていませんHashMap
この質問を読んでください:「インターフェースにプログラムする」とはどういう意味ですか?
また、そこに何をキャストしていたのかわかりませんかSet
?
私はソナーを使用していませんが、警告が基本的に意味するのは
実装クラスではなく、常にインターフェースにプログラムする
private Map<String, String> map= new HashMap<String, String>();
Interface Implementing class
一般に、具象型ではなく、常にインターフェースに対して実装する必要があります。この例では、次のようにコードを記述する必要があることを意味します。
private Map<String, String> map= new HashMap<String, String>();
大きな利点は、後でコードを壊すことなく、マップの具体的な実装をいつでも変更できることです。
詳細については、次の質問を確認してください。「オブジェクトではなく、インターフェイスに対するコード」と言うとき、プログラマーはどういう意味ですか?