में "यांत्रिक रूप से जेनरेट" जावा स्रोत फ़ाइलें, जैसा कि मैं जावा स्रोत कोड को देख रहा था, मुझे ByteBuffer
से java.nio
पैकेज में संबंधित कुछ असामान्य फाइलें मिलीं, जिनमें बहुत गन्दा स्रोत कोड था और लेबल किया गया था This file was mechanically generated: Do not edit!
।जावा स्रोत कोड
इन फ़ाइलों में लाइन नंबरों को बदलने से रोकने के लिए, संभवतया जवाडॉक्स (!!?) के बीच में भी रिक्त रेखाओं के बड़े हिस्से (कुछ भी शामिल हैं)। मैंने कुछ जावा डीकंपलर भी देखे हैं, जैसे कि procyon-decompiler
, जिनके पास लाइन नंबर रखने का विकल्प है, लेकिन मुझे संदेह है कि यह मामला है, क्योंकि अंतिम प्रशंसा से पहले रिक्त रेखाएं डालने से कुछ भी नहीं बदलता है।
यहां इनमें से कुछ फाइलें हैं (मुझे उनसे कोई लिंक नहीं मिल सका और उन्हें पेस्टबिन नहीं किया क्योंकि मैं कोई कॉपीराइट तोड़ना नहीं चाहता हूं, लेकिन आप उन्हें src.zip
फ़ोल्डर में ढूंढ सकते हैं अपने JDK स्थापना फ़ोल्डर की जड़):
- java.nio.ByteBuffer
- java.nio.DirectByteBufferR
- java.nio.Bits
- java.nio.BufferOverflowException
मैं जानने के लिए उत्सुक हो जाएगा:
- कौन-सा टूल इन फ़ाइलों को उत्पन्न?
- टूल लाइन संख्याओं को समान क्यों रखता है? क्या यह डिबगिंग (स्टैकट्रैस) को आसान बनाना है?
- उन्हें उत्पन्न करने के लिए एक उपकरण का उपयोग क्यों किया जाएगा, जबकि अन्य सभी वर्ग मनुष्यों द्वारा प्रोग्राम किए जाते हैं?
- उपकरण अंतिम प्रशंसा से पहले, या यहां तक कि javadocs में, कोष्ठक के अंदर यादृच्छिक रूप से रिक्त रेखा क्यों डाल देगा?
मुझे संदेह है कि आपको एक जवाब मिलेगा क्योंकि उस कोड में काफी समय लगता है- [2006 से यह ब्लॉग पोस्ट] देखें (http://www.iggdawg.com/blog/2006/09/jaaaavaaaaa /), जब जावा अभी भी सूर्य के स्वामित्व में था। – APC
ऐसा लगता है कि इन फ़ाइलों को टेम्पलेट फ़ाइलों से कुछ प्रीप्रोसेसर द्वारा निर्मित के दौरान उत्पन्न किया जाता है: http://hg.openjdk.java.net/jdk9/dev/jdk/file/3b298c230549/src/share/classes/java/nio/ ByteBufferAs-X-Buffer.java.template –
आईआईआरसी, सी प्रीप्रोसेसर #if या #else के बाद छोड़ने के कारण रिक्त रेखाएं डालता है। यहां, तर्क स्पष्ट है, मुझे लगता है: अगर कुछ संकलक ouput में एक त्रुटि झंडे, तो आप इसे मूल इनपुट में पाएंगे। – laune