5

文字列パラメータを「null」として渡したい

ただし、これはコンストラクターのスーパーメソッド用であるため、できません

String s = null;
super(s);

私はただすることはできません

super(null)

これはあいまいなメソッド呼び出しになるためです。これに対してもnullのインスタンス変数を持ちたくありません。それはエレガントではないようです。

null 文字列を作成する方法はありますか?

注意

 new String(null) //does not compile
4

3 に答える 3

5

これを行うだけ

super((String)null);
于 2012-12-14T11:46:26.700 に答える
3

CodeMan が正解、別の解決策を投稿、null から離れ、空の文字列での初期化を検討

super("");

これにより、後でnullチェックが回避されます。

于 2012-12-14T11:50:38.203 に答える
1

あなたが抱えている問題は、コンパイラがどのコンストラクタを使用すべきかを知らないということです。

文字列には、さまざまな単一パラメーターコンストラクターがあります。

 String(String)
 String(char value[])
 String(StringBuffer)
 String(StringReader)

を使用する場合String(null)、どちらを使用すべきかは不明です。

null(メソッドまたはコンストラクターで)引数としてasを使用する場合は、常にキャストを使用して目的の型に転送する必要があることに注意してください。

new String((String) null);

于 2012-12-14T12:04:08.617 に答える