Ada public static class AbstractMap.SimpleEntry<K,V>. Jangan biarkan Abstractbagian dari nama menyesatkan Anda: itu sebenarnya tidak sebuah abstractkelas (tapi top-level AbstractMapadalah).
Fakta bahwa itu adalah statickelas bersarang berarti bahwa Anda TIDAK perlu menyertakan AbstractMapinstance untuk instantiate, jadi sesuatu seperti ini mengkompilasi dengan baik:
Map.Entry<String,Integer> entry =
new AbstractMap.SimpleEntry<String, Integer>("exmpleString", 42);
Seperti disebutkan dalam jawaban lain, Guava juga memiliki staticmetode pabrik yang nyaman Maps.immutableEntryyang dapat Anda gunakan.
Kamu berkata:
Saya tidak dapat menggunakan Map.Entrydirinya sendiri karena ternyata itu adalah objek hanya-baca yang saya tidak dapat instantiate baruinstanceof
Itu tidak sepenuhnya akurat. Alasan mengapa Anda tidak dapat membuat instantiate secara langsung (yaitu dengan new) adalah karena itu adalah interface Map.Entry.
Peringatan dan tip
Seperti yang tercantum dalam dokumentasi, AbstractMap.SimpleEntryadalah @since 1.6, jadi jika Anda terjebak ke 5.0, maka tidak tersedia untuk Anda.
Untuk mencari kelas lain yang diketahui itu implements Map.Entry, Anda sebenarnya bisa langsung menuju ke javadoc. Dari versi Java 6
Peta Antarmuka. Coba
Semua Kelas Pelaksana yang Dikenal :
Sayangnya versi 1.5 tidak mencantumkan kelas pelaksana yang diketahui yang dapat Anda gunakan, jadi Anda mungkin terjebak dengan penerapan kelas Anda sendiri.