Rumah > Soal Jawab > teks badan
System.out.println("a**"+map.get(a).getClass());
System.out.println("a**"+map.get(a));
-------------分割线------------
a**class java.util.ArrayList
a**[]
以上是控制台打印出来的东西。
map.get(a).toString().equals("");一直是false
map.get(a)!=null;一直是true
PHP中文网2017-04-18 09:09:32
Di Java, tatasusunan null dan kosong bukanlah konsep yang sama. Jika anda ingin menentukan sama ada tatasusunan kosong, anda boleh menulisnya seperti ini.
`
jika (map.get(a) == null || map.get(a).size() == 0)
`
Jika ia adalah persekitaran pengeluaran, adalah disyorkan untuk menggunakan kelas alat, seperti
apache common
atau spring menyediakanCollectionUtils.isEmpty(map.get(a))
高洛峰2017-04-18 09:09:32
Jika ArrayList telah dibuat instantiated, ia pastinya tidak sama dengan null.
Memandangkan kaedah toString boleh dilaksanakan tanpa melaporkan ralat, ia mesti telah dibuat seketika. Oleh kerana toString ialah kaedah Objek kelas induk peringkat atas, bagaimanakah objek tidak segera mempunyai kaedah ini.
ArrayList list = new ArrayList();
System.out.println(list == null); // false
ArrayList list1 = null;
System.out.println(list1.toString()); // 空指针
PHP中文网2017-04-18 09:09:32
Hasil yang anda cetaka**[]
boleh dilihat bahawa map.get(a).toString()
bukan rentetan kosong, tetapi []
, jadi "[]".equals("")
sentiasa palsu
Jika map.get(a).toString()
tidak membuang pengecualian penuding nol, maka map.get(a)
mestilah bukan nol
Jika nilai yang sepadan dengan kunci sentiasa ArrayList, maka kaedah berikut boleh digunakan:
map.get(a) == null || map.get(a).isEmpty()