दिलचस्प पोस्ट
कस्टम क्रिया का उपयोग करके गतिविधि प्रारंभ करें अपने स्ट्रिंग समकक्ष के लिए उद्देश्य-सी टाइप कियाइफ़ को कन्वर्ट करें JavaScript से ASP.NET MVC क्रिया विधियां कॉल करना चरित्र तारों की सरणी में विभाजित स्ट्रिंग प्रकार या नाम स्थान का नाम मौजूद नहीं है कैसे माता पिता div में अस्पष्टता सेट करने के लिए और बच्चे div में प्रभावित नहीं? मैं बाश स्क्रिप्ट में एक फ़ाइल में हेरडॉक कैसे लिख सकता / सकती हूं? जावा में क्लास का शाब्दिक क्या है? Symfony2 में बंडल के लिए संबंधित फ़ाइलें एक्सेस करना जावास्क्रिप्ट कॉलबैक फ़ंक्शंस में चर का दायरा क्या होगा अगर मैं क्रिकोज़ल के क्वालिटी में कई बार अस्वीकार / हल करता हूं? ब्राउज़र से एक एंड्रॉइड एप्लिकेशन लॉन्च करना कैसे एक छवि को आधार64 एन्कोडिंग में बदलने के लिए? प्रोग्रामिंग के अंत में प्रोग्रामिंग एक सी ++ प्रोग्राम में कैसे डिफ़ॉल्ट पैकेज से एक वर्ग को आयात करें

जावा संकलित वर्गों में डॉलर के संकेत होते हैं

मैं एक्लिप्स का उपयोग अपने विकास आईडीई के रूप में कर रहा हूं। मैं भी इसका इस्तेमाल अपने .jar फ़ाइल में निर्यात करने के लिए करता हूं। जब मैं .jar फ़ाइल में अपनी कक्षाओं को देखता हूं, तो मेरी कक्षाओं में से कुछ में उस वर्ग का नाम, एक डॉलर का चिह्न होता है, फिर एक संख्या। उदाहरण:

  • खोजें $ 1.class
  • खोजें $ 2.class
  • खोजें $ 3.class
  • Find.class

मैंने देखा है कि यह बड़े वर्गों पर करता है क्या ऐसा इसलिए है क्योंकि कक्षाएं इतनी बड़ी हो गईं, यह इसे कई वर्गों में संकलित करता है? मैंने कई फॉरेम्स पर गोल किया है और देखा है, और जावा दस्तावेज़ीकरण की खोज की है लेकिन इसके बारे में इससे संबंधित कुछ भी नहीं मिला है। क्या कोई समझा सकता है?

Solutions Collecting From Web of "जावा संकलित वर्गों में डॉलर के संकेत होते हैं"

आंतरिक वर्ग, यदि आपकी कक्षा में मौजूद कोई भी, संकलित किया जाएगा और क्लास फ़ाइल ClassName$InnerClassName । बेनामी आंतरिक वर्गों के मामले में, यह संख्याओं के रूप में दिखाई देगा। कक्षा (जावा कोड) का आकार एकाधिक वर्गों की पीढ़ी तक नहीं ले जाता है।

उदाहरण के लिए कोड का यह टुकड़ा दिया गया है:

 public class TestInnerOuterClass { class TestInnerChild{ } Serializable annoymousTest = new Serializable() { }; } 

जिन वर्गों का निर्माण किया जाएगा वे होंगे:

  1. TestInnerOuterClass.class
  2. TestInnerOuterClass$TestInnerChild.class
  3. TestInnerOuterCasss$1.class

अद्यतन करें:

अनाम वर्ग का उपयोग करना एक खराब अभ्यास नहीं माना जाता है, यह केवल उपयोग पर निर्भर करता है।

SO पर इस चर्चा की जांच करें

इसका कारण यह है कि आपके पास इस बड़े वर्ग के भीतर गुमनाम कक्षाएं हैं। वे इस नामकरण परंपरा का उपयोग करके संकलित हो जाते हैं।

अनाम क्लास कनंड्रम देखें

@ प्रभालाट द्वारा प्रस्तुत उपरोक्त मामलों के अतिरिक्त, अन्य मामले भी हो सकते हैं:

  1. यदि आप वर्ग में एक enum वेरिएबल होता है तो इसके लिए एक अलग क्लास भी तैयार होगा। उत्पन्न क्लाइंट का नाम क्लासैनम $ नाम_ओफ़_एनाम होगा
  2. यदि आपकी कक्षा X का उत्तराधिकारी अर्थात् दूसरे वर्ग वाई का विस्तार करना है, तो एक क्लासनाम नाम $ 1 वर्ग या क्लासनाम $ 1 $ 1. वर्ग के साथ उत्पन्न एक वर्ग होगा।
  3. यदि आपका क्लास एक्स एक इंटरफ़ेस वाई को लागू कर रहा है, तो एक क्लासनाम $ 1 क्लास या क्लासनाम $ 1 $ 1. क्लास के साथ उत्पन्न एक क्लास होगा

ये मामलों में जार में क्लास फाइलों पर मेरी निरीक्षण की रूपरेखा होती है I

के बारे में अपनी टिप्पणी का जवाब देने के लिए अनाम वर्ग बुरा है वे सबसे निश्चित रूप से नहीं हैं एक जेबटन को एक क्रिया श्रोता प्रदान करने के लिए इस पर गौर करें:

 JButton button = new JButton(...); button.addActionListener(new ActionListener() { ... }); 

या यह "नाम" संपत्ति के द्वारा एक केस असंवेदनशील सॉर्ट करने के लिए

 Collections.sort( array, new Comparator<Foo>() { public int compare(Foo f1, Foo f2) { return f1.getName().toLowerCase().compareTo(f2.getName().toLowerCase()); } }); 

आपको गुमनाम कक्षाओं के रूप में बहुत सारे रननबल और कॉलबल भी दिखाई देंगे।