2012-12-14 14 views
5

मैं के रूप में "अशक्त"जावा क्या मैं एक स्ट्रिंग बना सकता हूं जिसे एक पंक्ति में शून्य के रूप में परिभाषित किया गया है?

हालांकि एक स्ट्रिंग पैरामीटर पारित करने के लिए करना चाहते हैं, यह एक निर्माता में सुपर विधि के लिए है - तो मैं

String s = null; 
super(s); 

मैं सिर्फ ऐसा नहीं कर सकते ऐसा नहीं कर सकते

super(null) 

क्योंकि इसके परिणामस्वरूप एक संदिग्ध विधि कॉल होगी। मैं एक इंस्टेंस वैरिएबल नहीं चाहता हूं जो इसके लिए शून्य है, जो कि सुरुचिपूर्ण लगता है।

क्या कोई नल स्ट्रिंग बनाने का कोई तरीका है?

नायब

new String(null) //does not compile 
+17

'सुपर ((स्ट्रिंग) नल)' –

+5

@AndrewThompson: कि एक जवाब होना चाहिए (सरल रूप में के रूप में यह आप के लिए लग सकता है)। बेशक –

+0

! धन्यवाद – bharal

उत्तर

3

CodeMan सही जवाब, एक और समाधान, अशक्त से कदम दूर तैनात करते हैं, और खाली तार के साथ आरंभ करने पर विचार

super(""); 

यह बाद में एक शून्य जांच से बच जाएगा।

+0

यह सच है - यद्यपि एक शून्य जांच है, और यदि हम कभी भी एक गैर-शून्य और खाली स्ट्रिंग के साथ कुछ करना चाहते हैं तो मैंने सोचा कि मैं इससे दूर रहूंगा। – bharal

+0

[यह वार्तालाप] (http://stackoverflow.com/questions/1277965/should-i-set-the-initial-java-string-values-from-null-to) मुझे स्ट्रिंग concatenating के साथ बग पसंद है, लेकिन मैं तथ्य की तरह भी नल ढेर पर नहीं जाता है (यद्यपि जावा में कुशल होना थोड़ा सा व्यर्थ लगता है)। –

1

आपके पास समस्या यह है कि संकलक को पता नहीं है कि किस कन्स्ट्रक्टर का उपयोग किया जाना चाहिए।

स्ट्रिंग में विभिन्न एकल पैरामीटर कन्स्ट्रक्टर हैं।

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

जब आप String(null) उपयोग करें, यह अज्ञात है जो इस्तेमाल किया जाना चाहिए है।

याद रखें कि जब आप (एक विधि या निर्माता में) तर्क के रूप में एक null का उपयोग करें, आपको चाहिए हमेशा आगे यह इच्छित प्रकार के कलाकारों के साथ।

new String((String) null);

संबंधित मुद्दे

 संबंधित मुद्दे