Util.Map.Entry
これに似た構造 を含む新しいアイテムを作成したいと思いますkey
。value
問題は、Map.Entry
インターフェースであるためインスタンス化できないことです。
Map.Entry の新しい汎用キー/値オブジェクトを作成する方法を知っている人はいますか?
ベストアンサー1
そこにはpublic static class AbstractMap.SimpleEntry<K,V>
Abstract
名前の一部に惑わされないでください。これは実際にはクラスではありませんabstract
(ただし、トップレベルのAbstractMap
は)。
ネストされたクラスであるということは、インスタンス化するために囲むインスタンスは必要ないstatic
ことを意味します。そのため、次のようなものは正常にコンパイルされます。AbstractMap
Map.Entry<String,Integer> entry =
new AbstractMap.SimpleEntry<String, Integer>("exmpleString", 42);
別の回答で述べたように、Guavaには便利なstatic
ファクトリーメソッドもありますMaps.immutableEntry
使用することができます。
あなたが言った:
Map.Entry
どうやら読み取り専用オブジェクトなので、新しくインスタンス化できないため、それ自体は使用できません。instanceof
それは完全に正確ではありません。直接インスタンス化できない(つまりnew
)理由は、それがinterface Map.Entry
。
注意とヒント
ドキュメントに記載されているように、AbstractMap.SimpleEntry
は なので@since 1.6
、5.0 を使用している場合は利用できません。
の別の既知のクラスを探すにはimplements Map.Entry
、Javadocに直接アクセスします。Java 6 バージョン
インターフェースマップ.エントリ
既知の実装クラスすべて:
残念ながら1.5 バージョン使用できる既知の実装クラスがリストされていないため、独自に実装する必要がある可能性があります。