जावा के Class.getName()
और Class.getCanonicalName()
के बीच क्या अंतर है?नाम और कैननिकल नाम के बीच क्या अंतर है?
उत्तर
निम्नलिखित कार्यक्रम पर विचार करें:
package org.test.stackoverflow;
public class CanonicalName {
public static void main(String[] args) {
CanonicalName cn = new CanonicalName();
cn.printClassNames();
}
private Anonymous anony;
private MyAnony myAnony;
public CanonicalName() {
anony = new Anonymous() {
public void printInterface() {
System.out.println("Anony Name: " + getClass().getName());
System.out.println("Anony CanonicalName: " + getClass().getCanonicalName());
}
};
myAnony = new MyAnony();
}
public void printClassNames() {
System.out.println("CanonicalName, Name: " + getClass().getName());
System.out.println("CanonicalName, CanonicalName: " + getClass().getCanonicalName());
anony.printInterface();
myAnony.printInterface();
}
private static interface Anonymous {
public void printInterface();
}
private static class MyAnony implements Anonymous {
public void printInterface() {
System.out.println("MyAnony Name: " + getClass().getName());
System.out.println("MyAnony CanonicalName: " + getClass().getCanonicalName());
}
}
}
आउटपुट:
CanonicalName, Name: org.test.stackoverflow.CanonicalName
CanonicalName, CanonicalName: org.test.stackoverflow.CanonicalName
Anony Name: org.test.stackoverflow.CanonicalName$1
Anony CanonicalName: null
MyAnony Name: org.test.stackoverflow.CanonicalName$MyAnony
MyAnony CanonicalName: org.test.stackoverflow.CanonicalName.MyAnony
तो ऐसा लगता है कि आधार वर्ग के लिए, वे एक ही चीज वापस जाएँ। इनर क्लासों के लिए, getName()
$
नामकरण परंपरा का उपयोग करता है (यानी क्या .class फ़ाइलों के लिए प्रयोग किया जाता है) getCanonicalName()
रिटर्न क्या आप अगर आप वर्ग का दृष्टांत करने की कोशिश कर रहे थे का प्रयोग करेंगे, और। आप ऐसा नहीं कर सकता है एक (थोड़ा-एक) गुमनाम वर्ग के साथ है, तो यही कारण है कि getCanonicalName()
रिटर्न अशक्त है।
यह सिर्फ सेकंड में अपने खुद के सवाल का जवाब खोजने के लिए असंभव है। धोखे की तरह लग रहा है। प्रश्न के टाइम्स और जवाब बिल्कुल वही हैं। –
@MaciejZiarko वहाँ तल पर एक चेकबॉक्स है "अपना स्वयं का प्रश्न, क्यू एंड ए शैली का जवाब। मैं इतना में ज्ञान का आधार करने के लिए मेरी हाल ही में खोज जोड़ने के लिए है, क्योंकि मैं इसे कहीं भी नहीं पा सके थे। – durron597
भविष्य में संदर्भ के लिए, नाम नहीं कक्षा के अवधारणा के बाद आप एक्सप्लोर करने/चित्रित करने की कोशिश कर रहे हैं ... – Andrew
- 1. पैरामीटर परिभाषाओं के बीच अंतर (प्रकार और नाम), और (प्रकार * नाम) के बीच अंतर क्या हैं?
- 2. नाम और उपनामों के बीच क्या अंतर है
- 3. एसबीटी - नाम और आईडी के बीच क्या अंतर है?
- 4. स्थानीय नाम और qname के बीच क्या अंतर है?
- 5. आर्क सुविधा [शाखा-नाम] और गिट शाखा [शाखा-नाम] के बीच अंतर क्या हैं?
- 6. एक्स के बीच अंतर: कुंजी और एक्स: नाम
- 7. "कैननिकल पथ" क्या है?
- 8. क्या न्यूनतम() और अधिकतम() संयोजन वाले फ़ंक्शन के लिए "कैननिकल" नाम है?
- 9. किसी जेएनबीसी कनेक्शन में एक टीएनएस नाम और सेवा नाम का उपयोग करने के बीच अंतर
- 10. loadClass (स्ट्रिंग नाम) और लोड क्लास (स्ट्रिंग नाम, बूलियन संकल्प) के बीच अंतर
- 11. एक परिवर्तनीय नाम से पहले और ":" के बाद "mut" रखने के बीच क्या अंतर है?
- 12. नामित टाइप प्रकार: एक [0] ['नाम'] और एक ['नाम'] [0] के बीच अंतर?
- 13. इकाई नाम और इकाई सेट नाम
- 14. बंडल नाम और ऐप्पल ऐप स्टोर नामों के बीच क्या अंतर है?
- 15. फ़ंक्शन नाम में 'स्थिति' और 'स्थिति' के बीच क्या अंतर है?
- 16. केकपीएचपी में मॉडल-> ऊर्फ और मॉडल-> नाम के बीच क्या अंतर है?
- 17. अद्वितीय, अद्वितीय कुंजी और कन्स्ट्रेंट 'नाम' के बीच क्या अंतर है अद्वितीय?
- 18. योग्य नाम और फ़ील्ड एक्सेस अभिव्यक्ति के बीच क्या अंतर है?
- 19. WinAPI में GetLongPathName और GetFullPathName के बीच क्या अंतर है?
- 20. शीर्षक और प्रदर्शन नाम
- 21. स्कीमा और डेटा डिक्शनरी के बीच क्या अंतर है?
- 22. हुक और कॉलबैक के बीच क्या अंतर है?
- 23. AppDomain.CurrentDomain.BaseDirectory और Application.ExecutablePath के बीच क्या अंतर है?
- 24. [अपरिभाषित] और [,] के बीच क्या अंतर है?
- 25. # {} $ {} और% {} के बीच क्या अंतर है?
- 26. `&` और `ref` के बीच क्या अंतर है?
- 27. $ और $$ के बीच क्या अंतर है?
- 28. के बीच क्या अंतर है:। और: आर !?
- 29. वेरिलोग के बीच क्या अंतर है! और ~?
- 30. भिन्नता और '-' के बीच क्या अंतर है?
यह भी देखें http://stackoverflow.com/questions/15202997/what-is-the-difference-between-canonical-name-simple-name-and-class-name-in-jav – Anush
@ अनीश मजाकिया, मैं इसे देखकर उसको नहीं देखा, जो मेरी तुलना में केवल एक महीने पुराना है। धन्यवाद – durron597