• ベストアンサー

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

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

  • re97
  • お礼率80% (601/744)
  • Java
  • 回答数2
  • ありがとう数6

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

  • ベストアンサー
  • 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

  • 文字列の入っているString値、何も入力されていないString値、Null値の全てを表示されるには?

    access2003です。 フォーム1とクエリ1とテーブル1があります。 クエリ1の「テーブル1の番号フィールド」の抽出条件に 「Like "*" & [Forms]![フォーム1]![番号テキスト] & "*"」と入力しています。 フォーム1の番号テキストに「1」を入力しコマンドホ゛タンを押すと 「1」を含むレコードを表示され フォーム1の番号テキストに「*」を入力しコマンドホ゛タンを押すと 何かしらの文字列が入力されているレコート゛が表示されます。 しかし テーブル1番号フィールドには、 Null値と何も入力されていないString値(""←が入っている)も含まれています。 (見た目は空白どちらも空白です) (String値がある理由はADOを使って何も入力されてない値もまとめてレコードに追加している為) ここで質問なのですが フォーム1のコマンドホ゛タンを押したときに 文字列の入っているString値、何も入力されていないString値、Null値の全てを表示されるには どうすればいいのでしょうか? よろしくお願い致します。

  • nullを文字列にするには?

    nullなどリテラルを文字列にする方法が知りたいです。 何でも.toString()で文字列になるのかと思っていましたが、nullはダメでした。

  • 「名前付き引数 string」とはどういう意味です

    Left 関数のヘルプを見ると、 ----------------------------------- 指定項目 :string 内容:必ず指定します。 この文字列式の左端から文字列が取り出されます。 名前付き引数 string に Null 値が含まれている場合は、Null 値を返します。 ----------------------------------- とヘルプに書かれてるのですが 「名前付き引数 string」とはどういう意味でしょうか? 「引数」と、「名前付き引数」は、別の物ですか? http://officetanaka.net/excel/vba/error/compilation_error/error_21.htm を見るところによると、 Replace 関数で例えるなら、 Cells.Replace What:="aaa", Replacement:="" の 「What:=」や「Replacement:=」の事を名前付き引数と言うで、あってますか? しかし、Left 関数には、「What:=」のような引数はないので、 名前付き引数は使われてないと思うのですが・・・ http://www.sanynet.ne.jp/~awa/excelvba/kouza/chapt_03/003.html を見たのですが、よくわかりませんでした。

  • エクセルでのNULLという文字列挿入について

    エクセルで空白のセルに対してNULLという文字列を挿入したいのですが、 SUBSTITUTE関数を使ってやろうとたらNULLは0と判断されて0が入力されてしまいます。 NULLという意味ではなくて、NULLという文字列そのものを入力するときはどのようにしたらよいのでしょうか?

  • 文字列の加算

    OS  :WindowsXP Pro SP1 開発環境:VisualStudio .NET 2003 開発言語:C# 開発形態:Windowsアプリケーション プログラミング初心者です。どうかよろしくお願い致します。 現在、あるアプリケーションを作成しております。 その中で、数値の入った文字列を受け取り、それを全て加算しようとしております。 例えば、 引数の文字列が"123456789"だとしたら、そのメソッド内で1+2+3+4+5+6+7+8+9を計算し、答えを返却値とする。 私は文字列をint型にキャストして計算しようと思ったのですが、うまくキャストできません。string型はint型にキャストできないのでしょうか? また他に文字列の数値の加算をする方法がありましたら、どなたかご教授お願い致します。

  • 空の文字列とnullと""

    java初心者です。 空の文字列とnullと""の3つの関係がよくわかりません。 TextFieldを使った簡単なプログラムを作りました。そこで、”TextFieldに何も入力されていないこと”を判定する文を書こうと思ったのですが、どう書けばいいのか迷いました。 TextFieldのオブジェクトをtfとして、tf.getText()==""かtf.getText()==nullで大丈夫だと思いましたが、実行してみると、どちらを用いても判定できませんでした。結局、tf.getText().length()==0で判定できました。そこで、リファレンスを見ると、getText()はデフォルトで空の文字列を返すと、書いてありました。 したがって、「""とnullは空の文字列とは異なる」という理解に至ったのですが、では空の文字列とは何なのかという疑問がわいてきました。 また、自分は""とnullの違いもよくわかっていません。""とnullが異なるものである、ということはわかるのですが・・・ 質問をまとめると ・空の文字列とは何なのか? ・空の文字列は""やnullとどう違うのか? です。よろしくお願いします。

    • ベストアンサー
    • Java
  • 文字列の動的な結合

    C♯、.net frameworkdは2.0の環境です。 メソッドでSQL用の文字列を作っています。 引数によって、JOINするテーブルを変えたいのですが、StringBuilderではなく、 単なるStringの変数を、ひたすら + で結合している状態なので、悩んでいます。 String sql; sql = " select " + " tbl.column1 " + " from " + … こんな感じです。 StringBuilderで作り直したいのですが、諸事情により難しいので、+での文字列結合をしつつ、 ところどころ、引数を見て文字列を結合したりしなかったり…ということをスムーズにできる 方法はないでしょうか?

  • 文字列の最後がNULL ?

    例えば char str[] = "mojiretu" と言うのがあって、文字列の終端を判定するのに (str+8)がNULLではなく*(str+8)がNULLであることを判定します。 これってなぜですか?よろしくお願いします。

  • stringについて

    確認したいのですが、ある関数の引数はconst string& strでやる場合 文字列リテラルは、ヒープが確保してそれをポインタであるstringに渡される。だからコピーされる手間が減るとういことでよろしいのでしょうか? 環境はvisual C++ 2005です。

  • Stringの文字列をString[]配列に変換したい

    お世話になります♪ たとえばこういうStringの文字列があるとします。 String s = "私は Javaを 勉強 しています。"; これを下記のようなイメージでString[]配列に変換したいのですが、 {"私は","Javaを","勉強","しています。"}; 何かいい方法はないでしょうか? ヒントをください! よろしくお願いします。

    • ベストアンサー
    • Java

専門家に質問してみよう