পার্থক্য কি
Object foo = "something";
String bar = String.valueOf(foo);
এবং
Object foo = "something";
String bar = (String) foo;
উত্তর:
স্ট্রিংয়ে কাস্টিং কেবল তখন কাজ করে যখন বস্তুটি আসলে স্ট্রিং থাকে:
Object reallyAString = "foo";
String str = (String) reallyAString; // works.
বস্তু অন্য কিছু হলে এটি কাজ করবে না:
Object notAString = new Integer(42);
String str = (String) notAString; // will throw a ClassCastException
String.valueOf()
তবে আপনি যা যা পাস তা এটিকে রূপান্তরিত করার চেষ্টা করবে String
। এটি আদিম ( 42
) এবং অবজেক্টস ( new Integer(42)
, সেই বস্তুর ব্যবহার করে ) উভয়ই পরিচালনা করে toString()
:
String str;
str = String.valueOf(new Integer(42)); // str will hold "42"
str = String.valueOf("foo"); // str will hold "foo"
Object nullValue = null;
str = String.valueOf(nullValue); // str will hold "null"
বিশেষত শেষ উদাহরণটি নোট করুন: পাস null
করা String.valueOf()
স্ট্রিংটি ফিরিয়ে দেবে "null"
।
String.valueOf()
এবং এর মধ্যে কোনও উল্লেখযোগ্য পার্থক্য রয়েছে obj.toString()
কি? (আমার মনে যে প্রথমটি আসে obj.toString()
তা obj
হ'ল শূন্য হলে একটি ব্যতিক্রমের মাধ্যমে তা ঘটবে ))
null
। আপনি যদি String.valueOf()
আপনার জেডিকে বাস্তবায়নের দিকে লক্ষ্য করেন তবে দেখতে পাবেন যে এটি নাল-রেফারেন্সের জন্য যা করে তা কল করা toString()
।
str = String.valueOf(null)
জাভা 7 আপডেট 80 এ চেষ্টা করা হয়েছে, এটি এ NullPointerException
।
String.valueOf((Object) null)
স্ট্রিং "নাল" ফিরিয়ে দেবে। আক্ষরিক সাথে এটিকে কল করলে null
স্ট্রিংকে # ভ্যালুওফ (চর []) কল করবে যা আপনি যখন পাস করবেন তখন আসলে একটি এনপিই নিক্ষেপ করবে null
।
String.valueOf(foo)
foo এর .toString()
পদ্ধতিটি আহ্বান করে এবং ফলাফলটি বারে বরাদ্দ করে । এটি নাল এবং নিরাপদ অপারেশন টাইপ করুন।
হবে শুধু বরাদ্দ কাস্টিং foo বিন্যাস করতে বার , যদি ধরনের মেলা হয়। অন্যথায়, অভিব্যক্তি একটি নিক্ষেপ করবে ClassCastException
।
String.valueOf(Object)
আহ্বানগুলি বোঝানোর জন্যObject.toString()
উভয় ক্ষেত্রে একই আউটপুট উত্পন্ন String
।
Casting
প্রদত্ত বস্তুর ক্ষেত্রে ব্যর্থ হয় না string.
স্ট্রিং.ভেলিউও পদ্ধতিটি এর প্যারামিটার অবজেক্টের স্ট্রিং উপস্থাপনা পেতে ব্যবহৃত হয়।
(স্ট্রিং) মান স্ট্রিংয়ের জন্য বস্তুর মান কাস্ট করে।
নাল রেফারেন্স সম্পর্কে চিন্তা না করে আপনি কোনও স্ট্রিংয়ের স্ট্রিং প্রতিনিধিত্ব পেতে স্ট্রিং.ভালিউও পদ্ধতিটি ব্যবহার করতে পারেন। আপনি যদি নাল রেফারেন্সে স্ট্রিং কাস্ট করার চেষ্টা করেন তবে আপনি নালপয়েন্টারএক্সসেপশন পাবেন।
প্রথমটি অর্থাত্ String.valueOf
যদি স্ট্রিংটি কেবল তখনই প্রত্যাশিত হয় যদি অবজেক্টটি উপস্থাপনযোগ্য টাইপ হয় যা একটি মান প্রকার বা একটি স্ট্রিং .. অন্যথায় এটি ব্যতিক্রম ছুঁড়ে দেয়।
পরেরটিতে, আপনি সরাসরি কাস্টিং করছেন যা অবজেক্ট হতে পারে যদি অবজেক্টটি স্ট্রিং না হয়।
অনলাইন উদাহরণ।
স্ট্রিং.ওয়ালুওফ () এ; স্ট্রিংটি ওয়ার্ক হিসাবে টাইপস্টাস্ট করে সমস্ত আর্গুমেন্টকে মান () পদ্ধতিতে পাস করে স্ট্রিংয়ে রূপান্তর করে এবং পূর্ণসংখ্যার মতো st স্ট্রিং () পূর্ণসংখ্যাকে কেবল স্ট্রিংয়ে রূপান্তর করে