teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

例を追加

2020/08/28 03:20

投稿

momon-ga
momon-ga

スコア4828

answer CHANGED
@@ -14,4 +14,18 @@
14
14
  ```
15
15
 
16
16
  のように定義すればNullPointerExceptionは発生しません。
17
- ※コード2のnull代入を1行で定義したものと同じ
17
+ ※コード2のnull代入を1行で定義したものと同じ
18
+
19
+ 一次元配列の例ですが、配列そのものがNullと、配列の要素がNullの違いです。
20
+ ここだけ見れば、いたってシンプルなので、そのままなのですが・・・
21
+
22
+ ```java
23
+ String[] s;
24
+
25
+ s = null; // 配列がnull
26
+ // System.out.println(s.length); // s が null なので NullPointerException
27
+
28
+ s = new String[] { null, null, null }; // 配列の要素がnull(領域=3は確保している)
29
+ System.out.println(s.length); // 3
30
+
31
+ ```

2

追記

2020/08/28 03:20

投稿

momon-ga
momon-ga

スコア4828

answer CHANGED
@@ -2,10 +2,16 @@
2
2
 
3
3
  ごめんなさい。読み間違ってました。maisumakunさんの回答が正しいです。
4
4
 
5
+ str1の要素は確保されているので、
6
+ System.out.println("strの要素数:" + str.length);
7
+ とすると、要素は3になっていることを確認できます。
8
+
9
+ ---
5
10
  コード1の場合でも
6
11
 
7
12
  ```java
8
13
  String[][] str = {{"A", "B"}, {null}, {"C", "D", "E"}};
9
14
  ```
10
15
 
11
- のように定義すればNullPointerExceptionは発生しません。
16
+ のように定義すればNullPointerExceptionは発生しません。
17
+ ※コード2のnull代入を1行で定義したものと同じ

1

訂正

2020/08/28 02:57

投稿

momon-ga
momon-ga

スコア4828

answer CHANGED
@@ -1,5 +1,7 @@
1
- はい。あっています。
1
+ ~~はい。あっています。~~
2
2
 
3
+ ごめんなさい。読み間違ってました。maisumakunさんの回答が正しいです。
4
+
3
5
  コード1の場合でも
4
6
 
5
7
  ```java