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

回答編集履歴

1

append

2016/08/17 06:24

投稿

yohhoy
yohhoy

スコア6191

answer CHANGED
@@ -4,4 +4,13 @@
4
4
 
5
5
  厳密な定義を持ち出すと、言語仕様上はnull値専用の型が存在します。[Java言語規定, §4.1 型及び値の種類](http://www.y-adagio.com/public/standards/tr_javalang/4.doc.htm#11128) より引用:
6
6
 
7
- > 式`null`の型である特別な 空型(__null type__) も存在する。それには名前がない。空型には名前がないので,空型の変数を宣言すること又は空型にキャストすることはできない。空型の式が取りうる唯一の値が空参照となる。空参照は,常に任意の参照型にキャストできる。実際には,Javaプログラマは,空型を無視し,空型は任意の参照型となれる単なる特別なリテラルであると見なしても良い。
7
+ > 式`null`の型である特別な 空型(__null type__) も存在する。それには名前がない。空型には名前がないので,空型の変数を宣言すること又は空型にキャストすることはできない。空型の式が取りうる唯一の値が空参照となる。空参照は,常に任意の参照型にキャストできる。実際には,Javaプログラマは,空型を無視し,空型は任意の参照型となれる単なる特別なリテラルであると見なしても良い。
8
+
9
+ ----
10
+
11
+ > ```
12
+ > boolean nullsRemoved = names.remove(null);
13
+ > ```
14
+ > このコードを見る限りnullはboolean型な訳ですが、扱いがよくわかりません。
15
+
16
+ このコードを見ても「nullはboolean型」とは**言えません**。コードからそう判断されたとなると、メソッド呼び出しに関して酷く間違えた理解をしているように思えます。一般に、メソッド引数の型とメソッド戻り値の型には直接的な関係性はなく、そのメソッドの仕様を見ない限り何も言えません。一度、Java入門書等を参考にしてください。