質問: お世話になります。タイトル通りの質問になるのですが、 型がListの変数に対して、nullをチェックするのにタイトルのみの記述で可能なのでしょうか?
回答: List型の変数を宣言した時、 List a=null; と宣言したとします この時、宣言したList型の変数aはnullの状態です この変数に値を何個も入れて行きたいから宣言したわけですが、この時 この変数aには値を入れる器とでも言うべきインスタンスが入っていません この器が「ない」状態がnullであり、 a==nullでチェックするのはこの器が「ない」状態か「ある」状態かです この器(インスタンス)が「ない」状態で a.add("colo1"); a.add("colo1-2"); などのようにaにデータを入れようとすると例外になり、また isEmpty()を使って空かどうか確認しようとしても例外になります。 また、 List a=new ArrayList<>(); と宣言したとします。 この時、宣言したList型の変数aにはインスタンスが入っています この変数に値を何個も入れて行きたいから宣言したわけですが、この時 この変数aには値を入れる器とでも言うべきインスタンスが入っています この時、器が「ある」状態で この変数aに a.add("colo1"); a.add("colo1-2"); などの値を入れて行くと器の中にデータが入った状態になります 器が「あり」さえすればデータを入れることができ、 また器が「ある」状態でもデータは入れていない空の状態ということもあります。 この、器(インスタンス)が「空かどうか?」を判断する方法がisEmpty()です。 器(インスタンス)がありさえすればisEmpty()で空かどうかを確認する事ができます。