• ベストアンサー

(String)nullはnullではなく文字列?

引数として、(String)nullを渡しているコードがあるのですが、 これは「null」ではなく文字列としての「null」を渡しているのでしょうか? ・Stringでキャストしていると思うのですが、nullもキャストできるのでしょうか? ・それとも何か特別な意味がある?

質問者が選んだベストアンサー

  • ベストアンサー
  • sech1152
  • ベストアンサー率72% (45/62)
回答No.2

>Stringでキャストしていると思うのですが、nullもキャストできるのでしょうか? 他の回答にもあるように、キャストするのは構いませんがnullはnullです。 >それとも何か特別な意味がある? 意味があるとすれば、メソッドがオーバーロードしているときに、どのメソッドを呼び出すか特定するときに指定するくらいだと思います。 (オーバーロード:同じクラスの中で、同じ名称だけど引数の指定が違うメソッド) 例えば、 void methodA(String s) { System.out.print("String:" + s); } void methodA(Integer i) { System.out.print("Integer:" + i); } があったとき、 methodA(null); ではどちらのメソッドを呼び出すか特定できませんが、 methodA((String)null); にすると、 void methodA(String s) のほうを呼び出します。

re97
質問者

お礼

回答ありがとうございました。 大変勉強になりましたー

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • itu1989
  • ベストアンサー率44% (37/83)
回答No.1

nullをStringへキャストしてもnullです。 このぐらいなら実際に比較すれば簡単にわかりますよ^^ 【Java】 1 | System.out.println(((String)null)==null); 2 | System.out.println(((String)null) instanceof String ); 【実行結果】 1 | true 2 | false 1行目:(String)null は null ですか = true 2行目:(String)null は String ですか = false

re97
質問者

お礼

回答ありがとうございました。 大変参考になりましたー

すると、全ての回答が全文表示されます。

関連するQ&A