
お世話になります。タイトル通りの質問になるのですが、
型がListの変数に対して、nullをチェックするのにタイトルのみの記述で可能なのでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答4件
0
たとえば、
java
1/* package whatever; // don't place package name! */ 2 3import java.util.*; 4import java.lang.*; 5import java.io.*; 6 7/* Name of the class has to be "Main" only if the class is public. */ 8class Ideone 9{ 10 public static void main (String[] args) throws java.lang.Exception 11 { 12 List<Object> a = new ArrayList<>(); 13 14 System.out.printf("list == null : %s %n", a == null); 15 System.out.printf("list.isEmpty : %s %n", a.isEmpty()); 16 17 List<Object> b = null; 18 19 System.out.printf("list == null : %s %n", b == null); 20 try { 21 System.out.printf("list.isEmpty : %s %n", b.isEmpty()); 22 } catch(Exception e) { 23 System.out.printf("list.isEmpty : %s %n", e.getClass().getName()); 24 } 25 } 26}
という処理を実行した場合。
a は
java
1list == null : false 2list.isEmpty : true
b は
java
1list == null : true 2list.isEmpty : java.lang.NullPointerException
となります。
Listが生成されているかのチェックは == null
Listが生成されていてサイズが 0 なのかは #isEmpty()
という方法をとります。
投稿2017/01/06 13:05

退会済みユーザー
総合スコア0
0
ベストアンサー
List型の変数を宣言した時、
List<String> a=null;
と宣言したとします
この時、宣言したList型の変数aはnullの状態です
この変数に値を何個も入れて行きたいから宣言したわけですが、この時
この変数aには値を入れる器とでも言うべきインスタンスが入っていません
この器が「ない」状態がnullであり、
a==nullでチェックするのはこの器が「ない」状態か「ある」状態かです
この器(インスタンス)が「ない」状態で
a.add("colo1");
a.add("colo1-2");
などのようにaにデータを入れようとすると例外になり、また
isEmpty()を使って空かどうか確認しようとしても例外になります。
また、
List<String> a=new ArrayList<>();
と宣言したとします。
この時、宣言したList型の変数aにはインスタンスが入っています
この変数に値を何個も入れて行きたいから宣言したわけですが、この時
この変数aには値を入れる器とでも言うべきインスタンスが入っています
この時、器が「ある」状態で
この変数aに
a.add("colo1");
a.add("colo1-2");
などの値を入れて行くと器の中にデータが入った状態になります
器が「あり」さえすればデータを入れることができ、
また器が「ある」状態でもデータは入れていない空の状態ということもあります。
この、器(インスタンス)が「空かどうか?」を判断する方法がisEmpty()です。
器(インスタンス)がありさえすればisEmpty()で空かどうかを確認する事ができます。
投稿2017/01/09 05:01

退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
isEmptyメソッドが定番と思います
投稿2017/01/06 12:49
総合スコア4853
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/06 13:08

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。