私はただ疑問に思っています...最適な方法でキャストConcurrentHashMapする方法は?HashMap
有用なコメントは大歓迎です
なぜあなたはそれをする必要があるのですか?にキャストするだけMapです。
AConcurrentHashMapはHashMap(厳密なクラス継承の意味で)ではないため、このキャストを実行することはできません。キースが言うように、あなたはおそらくそれをのように扱いMap、クライアントコードに実装を気にしないほうがよいでしょう。ConcurrentHashMap本当にをに変換したい場合はHashMap、コンストラクターHashMap(Map)を使用しますが、これにはまったく新しいMapを作成して入力する必要があります。
私の「それを「のように扱うMap」提案を明確にします。コードを書く通常の方法(本当に必要な場合、HashMapまたはConcurrentHashMap次のような機能が必要な場合を除く)。
Map<K, V> myMap = new HashMap<K, V>();
また
Map<K, V> myMap = new ConcurrentHashMap<K, V>():
だがしかし
//Don't do this unless you have a good reason!
HashMap<K, V> myMap = new HashMap<K, V>();
物事を一般的に保ち、変数myMapをaMapではなくとして定義することの利点はHashMap、使用する実装を心配することなく変更できることです。