दोनों के बीच क्या अंतर है
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()
हालाँकि, जो कुछ भी आप इसे में परिवर्तित करने की कोशिश करेंगे उसे a 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()
अपने JDK के कार्यान्वयन को देखते हैं, तो आप देखेंगे कि यह सब गैर-अशक्त संदर्भों के लिए हैtoString()
।
String.valueOf()
था कि एक कलाकार की तुलना में अधिक सुरुचिपूर्ण था। लेकिन अगरString.valueOf()
वह सब कुछ करता है जो कास्टिंग करता है, और अधिक, तो क्या कोई कारण है कि कोई एक कलाकार का उपयोग करना क्यों पसंद करेगा? इसे अपदस्थ क्यों नहीं किया गया?
String.valueOf((Object) null)
स्ट्रिंग "null" लौटाएगा। इसे शाब्दिक रूप null
से कॉल करना स्ट्रिंग # valueOf (char []) को कॉल करेगा जो वास्तव में एनपीई फेंकता है जब आप इसमें पास होते हैंnull
।
String.valueOf(foo)
फू की .toString()
विधि को आमंत्रित करता है और बार को परिणाम बताता है । यह अशक्त और सुरक्षित संचालन है।
कास्टिंग अभी असाइन होगी यदि प्रकार मिलान कर रहे हैं, तो बार को फू को । अन्यथा, अभिव्यक्ति एक फेंक देगा ClassCastException
।
String.valueOf(Object)
आक्रमणObject.toString()
दोनों के मामले में एक ही आउटपुट उत्पन्न करता है String
।
Casting
प्रदान की गई वस्तु के मामले में असफलता नहीं है string.
String.valueOf पद्धति का उपयोग स्ट्रिंग ऑब्जेक्ट के स्ट्रिंग रिपेंसेशन को प्राप्त करने के लिए किया जाता है।
(स्ट्रिंग) मान स्ट्रिंग के लिए ऑब्जेक्ट वैल्यू कास्ट करता है।
आप अशक्त संदर्भों की चिंता किए बिना किसी वस्तु का स्ट्रिंग प्रतिनिधित्व प्राप्त करने के लिए String.valueOf विधि का उपयोग कर सकते हैं। यदि आप स्ट्रिंग को एक शून्य संदर्भ पर कास्ट करने का प्रयास करते हैं, तो आपको NullPointerException मिलेगा।
पहले एक यानी, String.valueOf
एक स्ट्रिंग केवल तभी लौटाता है जब ऑब्जेक्ट एक प्रतिनिधित्व योग्य प्रकार है जो एक मूल्य प्रकार या एक स्ट्रिंग है .. इसके अलावा अपवाद फेंकता है।
बाद वाले में, आप सीधे कास्टिंग कर रहे हैं जो विफल हो सकता है यदि ऑब्जेक्ट स्ट्रिंग नहीं है।
ऑनलाइन उदाहरण।
String.valueOf () में; स्ट्रिंग टाइपिंग के रूप में कार्य सभी मान तर्क () में पारित विधि स्ट्रिंग में कन्वर्ट और पूर्णांक की तरह। स्ट्रिंग () केवल पूर्णांक स्ट्रिंग में परिवर्तित करें।