উত্তর:
এর toString()
পদ্ধতিটি শুরু করে
এই ক্রম হিসাবে একই ক্রমে এই ক্রমের অক্ষরগুলি সমন্বিত একটি স্ট্রিং প্রদান করে। স্ট্রিংয়ের দৈর্ঘ্য এই ক্রমের দৈর্ঘ্য হবে।
এখানে একটি সূক্ষ্ম সমস্যা আছে যা কিছুটা গোটচা।
toString()
পদ্ধতিতে একটি বেস বাস্তবায়ন হয়েছে Object
। CharSequence
একটি ইন্টারফেস; এবং যদিও toString()
পদ্ধতিটি সেই ইন্টারফেসের অংশ হিসাবে উপস্থিত হয়, সংকলন-সময় এমন কোনও কিছুই নেই যা আপনাকে এটিকে ওভাররাইড করতে বাধ্য করবে এবং CharSequence
toString()
পদ্ধতির জাভাদোক পদ্ধতিটিতে যে অতিরিক্ত বাধা রেখেছিল তা সম্মান করবে toString()
; অর্থাত্ এটির ক্রম অনুসারে অক্ষরগুলি সহ একটি স্ট্রিং প্রদান করা উচিতcharAt()
।
আপনার আইডিই এমনকি আপনাকে ওভাররাইড করা উচিত যে আপনাকে স্মরণ করিয়ে দিয়ে আপনাকে সাহায্য করতে পারে না toString()
। উদাহরণস্বরূপ, ইন্টেলিজ-এ, আপনি যদি নতুন CharSequence
বাস্তবায়ন তৈরি করেন তবে এটি আপনি দেখতে পাবেন : http://puu.sh/2w1RJ । অনুপস্থিতি নোট করুনtoString()
।
আপনি উপর নির্ভর toString()
একটি অবাধ উপর CharSequence
, এটা করা উচিত নয় প্রদত্ত কাজ CharSequence
implementer সঠিকভাবে তাদের কাজ করেনি। কিন্তু আপনি যদি কোন অনিশ্চয়তা পুরাপুরি এড়াতে চান, আপনি একটি ব্যবহার করা উচিত StringBuilder
এবং append()
তাই মত:
final StringBuilder sb = new StringBuilder(charSequence.length());
sb.append(charSequence);
return sb.toString();
CharSequence
ইন্টারফেসটি স্পষ্টভাবে সংজ্ঞায়িত করে toString()
- বাস্তবায়নকারী এটি মিস করবেন না। Javadoc যুক্তরাষ্ট্র "একটি স্ট্রিং এই ক্রম হিসাবে একই ক্রম এই ক্রমানুসারে অক্ষর ধারণকারী দেখায়। স্ট্রিং এর দৈর্ঘ্য এই ক্রম দৈর্ঘ্য হতে হবে" মধ্যে শুরু থেকেই 1.4 । লোকেরা, দয়া করে আপনি কী
StringBuilder
করা পাশাপাশি আপনি যা প্রত্যাশা করেছিলেন তা করতে ব্যর্থ হতে পারে। একইরকম অন্য কোনও ইন্টারফেসের ক্ষেত্রে যেমন, List
বা Set
বিশেষত তাদের equals()
এবং hashCode()
পদ্ধতিগুলি যা ওভাররাইড ছাড়াই সংকলন করবে, কিন্তু চুক্তি অনুসারে ওভাররাইড করা আবশ্যক ।
আপনি সরাসরি স্ট্রিং.ভালিউওফ () ব্যবহার করতে পারেন
String.valueOf(charSequence)
যদিও এটি ঠিক একইভাবে toString()
এটি charSequence
আসলে স্ট্রিং কল করার আগে একটি নাল চেক করে ।
এটি কার্যকর যখন কোনও পদ্ধতি কোনও মান charSequence
বা null
মান ফেরত দিতে পারে ।
charSequence
নাল হয় তবে ফেরত স্ট্রিংটি হবে "null"
এবং না null
।
setText(CharSequence)
কি আপনার প্রয়োজন অনুযায়ী কাজ করে না?