जवाबों:
इसकी toString()
विधि को लागू करके ।
इस क्रम में वर्णों से युक्त एक स्ट्रिंग को उसी क्रम में लौटाता है जो इस क्रम में है। स्ट्रिंग की लंबाई इस अनुक्रम की लंबाई होगी।
यहाँ एक सूक्ष्म मुद्दा है जो थोड़ा सा मिला है।
इस toString()
पद्धति का आधार कार्यान्वयन है Object
। CharSequence
एक इंटरफ़ेस है; और यद्यपि यह toString()
विधि उस इंटरफ़ेस के हिस्से के रूप में प्रकट होती है, लेकिन संकलन-समय पर ऐसा कुछ भी नहीं है जो आपको इसे ओवरराइड करने और अतिरिक्त बाधाओं का सम्मान करने के लिए मजबूर करेगा, जो CharSequence
toString()
विधि के javadoc toString()
विधि पर डालता है ; अर्थात यह एक तार को वापस लौटा देना चाहिए जिसमें दिए गए क्रम से वर्ण हों charAt()
।
आपका आईडीई आपको यह याद दिलाने में भी मदद नहीं करेगा कि आपको संभवतः ओवरराइड करना चाहिएtoString()
। उदाहरण के लिए, intellij में, यह वही है जो आप देखेंगे यदि आप एक नया CharSequence
कार्यान्वयन बनाते हैं : http://puu.sh/2w1RJ । की अनुपस्थिति पर ध्यान दें toString()
।
यदि आप toString()
एक मनमानी पर भरोसा करते हैं CharSequence
, तो यह काम करना चाहिए बशर्ते कि CharSequence
कार्यान्वयनकर्ता ने अपना काम ठीक से किया हो। लेकिन अगर आप किसी भी अनिश्चितता पूरी तरह से बचना चाहते हैं, तो आप एक का उपयोग करना चाहिए StringBuilder
और append()
इसलिए की तरह,:
final StringBuilder sb = new StringBuilder(charSequence.length());
sb.append(charSequence);
return sb.toString();
CharSequence
इंटरफ़ेस स्पष्ट रूप से परिभाषित करता है toString()
- implementor इस चूक नहीं होंगे। जावाडोक राज्यों "एक स्ट्रिंग इस अनुक्रम के रूप में एक ही क्रम में इस क्रम में वर्ण युक्त देता है। स्ट्रिंग की लंबाई इस क्रम की लंबाई हो जाएगा" में स्थापना के बाद से 1.4 । लोग, कृपया सत्यापित करें कि आप क्या
StringBuilder
बस के रूप में अच्छी तरह से आप क्या उम्मीद करने में विफल हो सकता है। वही किसी भी अन्य इंटरफ़ेस के लिए जाता है, जैसे कि List
या Set
, विशेष रूप से उनके equals()
और hashCode()
तरीके जो ओवरराइड के बिना संकलन करेंगे, लेकिन अनुबंध के अनुसार ओवरराइड किया जाना चाहिए।
आप सीधे String.valueOf () का उपयोग कर सकते हैं
String.valueOf(charSequence)
हालांकि यह वैसा ही है क्योंकि toString()
यह charSequence
वास्तव में स्टर्लिंग को कॉल करने से पहले एक अशक्त जांच करता है ।
यह तब उपयोगी होता है जब कोई विधि charSequence
या तो null
मान लौटा सकती है ।
charSequence
अशक्त है तो लौटा हुआ स्ट्रिंग होगा "null"
और नहीं null
।
setText(CharSequence)
क्या आप की जरूरत नहीं है?