Saya memiliki kode berikut:
Boolean bool = null;
try
{
if (bool)
{
//DoSomething
}
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
Mengapa pemeriksaan saya pada variabel Boolean "bool" menghasilkan pengecualian? Tidakkah seharusnya itu hanya melewati pernyataan if ketika "melihat" bahwa itu tidak benar? Ketika saya menghapus pernyataan if atau mengecek apakah itu BUKAN nol, pengecualian hilang.
if (bool == Boolean.TRUE)mengevaluasi false tanpa menghasilkan pengecualian. Tidak yakin apakah ini disengaja dalam kasus yang baru saja saya temukan.
boolmenjadi nullOR jika Booleandibangun secara eksplisit (dan bukan sebagai referensi Boolean.TRUE). Jadi tidak direkomendasikan; sebagai lawan if (Boolean.TRUE.equals(bool))yang akan bekerja seperti yang diharapkan, termasuk nullnilai penanganan yang aman .