我想傳遞一個字符串參數爲「空」java我可以創建一個字符串在一行中定義爲空?
但是,這是在構造函數中的超級方法 - 所以我不能做
String s = null;
super(s);
我不能只是做
super(null)
因爲這會導致模糊的方法調用。我不希望有一個實例變量爲null,這似乎不雅觀。
有沒有辦法創建一個空字符串?
NB
new String(null) //does not compile
我想傳遞一個字符串參數爲「空」java我可以創建一個字符串在一行中定義爲空?
但是,這是在構造函數中的超級方法 - 所以我不能做
String s = null;
super(s);
我不能只是做
super(null)
因爲這會導致模糊的方法調用。我不希望有一個實例變量爲null,這似乎不雅觀。
有沒有辦法創建一個空字符串?
NB
new String(null) //does not compile
只是這樣做
super((String)null);
CodeMan公佈正確答案,另一種解決方案, 移動遠離空,並考慮與空字符串初始化
super("");
這將避免稍後的空檢查。
這是真的 - 儘管有一個空檢查,並且萬一我們想要用非空和空字符串做一些事情,我想我會遠離這一點。 – bharal
[this conversation](http://stackoverflow.com/questions/1277965/should-i-set-the-initial-java-string-values-from-null-to)我喜歡字符串連接的錯誤,但我也像null事實上並沒有堆在一起(儘管在java中高效似乎沒有意義)。 –
您遇到的問題是編譯器不知道應該使用哪個構造函數。
字符串有各種單參數構造函數。
String(String)
String(char value[])
String(StringBuffer)
String(StringReader)
當您使用String(null)
,這是應該使用不明。
請記住,當您使用null
作爲參數(在方法或構造函數中)時,您應該總是將其轉換爲所需的類型。
new String((String) null);
'超((字符串)空)' –
@AndrewThompson:這應該是一個答案(簡單,因爲它可能給你看看)。當然是 –
!謝謝 – bharal