के बिना तत्काल बनाया गया है क्या मैं एक कक्षा बना सकता हूं जो =
ऑपरेटर के साथ तत्काल हो, जैसे String
कक्षा करता है? या यह जावा में String
कक्षा के लिए विशिष्ट सुविधा है?अपरिवर्तनीय ऑब्जेक्ट बनाएं, बिना नए
उत्तर
क्योंकि जावा का समर्थन नहीं करता उपयोगकर्ता परिभाषित ऑपरेटर ओवरलोडिंग एक नया उदाहरण =
ऑपरेटर के साथ नहीं बनाया जा सकता।
चेक बाहर Why doesn't Java offer operator overloading? अधिक जानकारी के लिए
नहीं, आप एक वर्ग है कि बस =
ऑपरेटर के साथ instantiated है क्योंकि क्या आप सी में कर सकते हैं ++ या सी # (Operator overloading in Java देखें) की तरह जावा में एक ऑपरेटर को ओवरलोड नहीं कर सकते नहीं बना सकते।
String
रों instantiated हैं जब आप "something"
का प्रयोग तभी यह पहले से ही स्मृति में मौजूद नहीं है, तो आप एक ही सटीक String
ऑब्जेक्ट के संदर्भ हर बार जब आप "something"
बारे में मिलता है।
, यदि आप कार्य करें:
String a = "something";
String b = "something";
फिर
a == b; // will be true.
आप इस सवाल पर एक नज़र बारे में अधिक जानने के लिए कैसे String
वस्तुओं काम ले सकते हैं:
कोड String s = "Hello World!"
एक नया String
नहीं बनाता है। यह स्ट्रिंग पूल में s
पर मौजूद String
का संदर्भ निर्दिष्ट करता है। यदि स्ट्रिंग पूल में String
मौजूद नहीं है, तो स्ट्रिंग पूल में एक नया String
ऑब्जेक्ट बनाया गया है, लेकिन ऑपरेटर =
अकेले नहीं है।
यह बनाता है नई String
objecs:
String s1 = new String("Hello World!"); // new Object
String s2 = new String("Hello World!"); // new Object
System.out.println(s1 == s2); // false
यह या स्ट्रिंग पूल में एक नया String
वस्तु नहीं बना सकते हो सकता है:
String s1 = "Hello World!";
String s2 = "Hello World!";
System.out.println(s1 == s2); // true
आप काफी व्यवहार उपयोग करने के साथ ऊपर उल्लेख के करीब हो सकता है getInstance()
पैटर्न, इस पर विचार करें:
public class Singleton {
private Singleton(){}
private static class SingletonHelper{
private static final instance INSTANCE = new Singleton();
}
public static Singleton getInstance() {
return SingletonHelper.INSTANCE;
}
}
फिर आप इसका उपयोग कर सकते हैं:
Singleton s = Singleton.getInstance();
पहला कोड स्निपेट आवश्यक रूप से स्ट्रिंग पूल में एक नया 'स्ट्रिंग' नहीं बनाता है ('नई स्ट्रिंग (...)' द्वारा बनाए गए तार पूल में निहित नहीं हैं)। – Nevay
@Nevay आप बिल्कुल सही हैं, मेरी गलती, मेरे जवाब को सही किया। –
- 1. अपरिवर्तनीय ऑब्जेक्ट
- 2. jQuery ऑब्जेक्ट अपरिवर्तनीय हैं?
- 3. अपरिवर्तनीय, अंतिम सिंगलटन ऑब्जेक्ट
- 4. जावा में अपरिवर्तनीय सूची कैसे बनाएं?
- 5. नए ऑब्जेक्ट आईडी
- 6. एक गहरी अपरिवर्तनीय संग्रह कैसे बनाएं?
- 7. सी # में अपरिवर्तनीय वस्तुएं कैसे बनाएं?
- 8. पायथन में 'ऑब्जेक्ट' वर्ग अपरिवर्तनीय क्यों हैं?
- 9. एक अपरिवर्तनीय ऑब्जेक्ट को बदलना F #
- 10. कन्स्ट्रक्टर का आविष्कार किए बिना ऑब्जेक्ट इंस्टेंस बनाएं?
- 11. एनएसओब्जेक्ट के बिना उद्देश्य-सी में रूट ऑब्जेक्ट कैसे बनाएं?
- 12. बिना किसी संदर्भ के क्लास ऑब्जेक्ट की प्रति कैसे बनाएं?
- 13. अपरिवर्तनीय सहायक
- 14. एक सबसेट ऑब्जेक्ट बनाएं, जिसमें मौजूदा ऑब्जेक्ट
- 15. इसमें कक्षा वस्तु के साथ अपरिवर्तनीय कक्षा कैसे बनाएं?
- 16. जावा: बिना ग्राफिक्स बनाएं?
- 17. डेटटाइम ऑब्जेक्ट कैसे बनाएं?
- 18. ऑब्जेक्ट को गलत बनाएं
- 19. नए
- 20. एक नया बिटमैप बनाएं और इसमें नए पिक्सल बनाएं
- 21. + = अपरिवर्तनीय सेट
- 22. ऑब्जेक्टमैपर का उपयोग कर डिफ़ॉल्ट कन्स्ट्रक्टर के बिना एक अपरिवर्तनीय ऑब्जेक्ट को डी/क्रमबद्ध कैसे करें?
- 23. कोटलिन में एक अपरिवर्तनीय सूची कैसे बनाएं जो जावा में एक अपरिवर्तनीय सूची भी है?
- 24. जेसन सरणी: नए सरणी तत्व कैसे बनाएं?
- 25. ग्राहक के लिए नए फ़ील्ड कैसे बनाएं
- 26. किसी ऑब्जेक्ट से ऑब्जेक्ट आउटपुट स्ट्रीम बनाएं
- 27. अपरिवर्तनीय वर्ग बनाम अपरिवर्तनीय संरचना
- 28. ऑब्जेक्ट विनाश बिना var
- 29. पूर्णांक अपरिवर्तनीय
- 30. एक सेक से एक अपरिवर्तनीय मानचित्र/सेट कैसे बनाएं?
नहीं, आप नहीं कर सकते। यह कुछ ऐसा है, जैसा आपने कहा था, 'जावा के अंदर स्थित है'। – sudo
और स्ट्रिंग्स * नहीं * '=' के साथ तत्काल हैं।स्ट्रिंग स्थिरांक को '"..." के साथ परिभाषित किया गया है और यह केवल वहां से अधिक जटिल हो जाता है। तो, नहीं, आप नहीं कर सकते। 'नया' का प्रयोग करें। यदि आपको 'नया' पसंद नहीं है, तो आप इसे एक स्थिर फैक्ट्री विधि या उसके जैसा कुछ छुपा सकते हैं। –
https://stackoverflow.com/questions/2068570/how-to-create-a-string-class-replica – soorapadman