Java - 新しいエントリ(キー、値)を作成する方法 質問する

Java - 新しいエントリ(キー、値)を作成する方法 質問する

Util.Map.Entryこれに似た構造 を含む新しいアイテムを作成したいと思いますkeyvalue

問題は、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 バージョン使用できる既知の実装クラスがリストされていないため、独自に実装する必要がある可能性があります。

おすすめ記事