Ada public static class AbstractMap.SimpleEntry<K,V>
. Jangan biarkan Abstract
bagian dari nama menyesatkan Anda: itu sebenarnya tidak sebuah abstract
kelas (tapi top-level AbstractMap
adalah).
Fakta bahwa itu adalah static
kelas bersarang berarti bahwa Anda TIDAK perlu menyertakan AbstractMap
instance 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 static
metode pabrik yang nyaman Maps.immutableEntry
yang dapat Anda gunakan.
Kamu berkata:
Saya tidak dapat menggunakan Map.Entry
dirinya 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.SimpleEntry
adalah @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.