回答編集履歴

3

例を追加

2020/08/28 03:20

投稿

momon-ga
momon-ga

スコア4820

test CHANGED
@@ -31,3 +31,31 @@
31
31
  のように定義すればNullPointerExceptionは発生しません。
32
32
 
33
33
  ※コード2のnull代入を1行で定義したものと同じ
34
+
35
+
36
+
37
+ 一次元配列の例ですが、配列そのものがNullと、配列の要素がNullの違いです。
38
+
39
+ ここだけ見れば、いたってシンプルなので、そのままなのですが・・・
40
+
41
+
42
+
43
+ ```java
44
+
45
+ String[] s;
46
+
47
+
48
+
49
+ s = null; // 配列がnull
50
+
51
+ // System.out.println(s.length); // s が null なので NullPointerException
52
+
53
+
54
+
55
+ s = new String[] { null, null, null }; // 配列の要素がnull(領域=3は確保している)
56
+
57
+ System.out.println(s.length); // 3
58
+
59
+
60
+
61
+ ```

2

追記

2020/08/28 03:20

投稿

momon-ga
momon-ga

スコア4820

test CHANGED
@@ -5,6 +5,16 @@
5
5
  ごめんなさい。読み間違ってました。maisumakunさんの回答が正しいです。
6
6
 
7
7
 
8
+
9
+ str1の要素は確保されているので、
10
+
11
+ System.out.println("strの要素数:" + str.length);
12
+
13
+ とすると、要素は3になっていることを確認できます。
14
+
15
+
16
+
17
+ ---
8
18
 
9
19
  コード1の場合でも
10
20
 
@@ -19,3 +29,5 @@
19
29
 
20
30
 
21
31
  のように定義すればNullPointerExceptionは発生しません。
32
+
33
+ ※コード2のnull代入を1行で定義したものと同じ

1

訂正

2020/08/28 02:57

投稿

momon-ga
momon-ga

スコア4820

test CHANGED
@@ -1,4 +1,8 @@
1
- はい。あっています。
1
+ ~~はい。あっています。~~
2
+
3
+
4
+
5
+ ごめんなさい。読み間違ってました。maisumakunさんの回答が正しいです。
2
6
 
3
7
 
4
8