2009-05-16 14 views
6

मैं कुछ विशिष्ट उपयोग मॉडल के लिए देखने के लिए एक बहुत ही सरल जावा पार्सर का निर्माण कर रहा हूँ,। कोड को चलाने के पिल्ले के लिए यह किसी भी तरह से lex/yacc या दुभाषिया/कंपाइलर का कोई अन्य रूप नहीं है।सभी जावा मानक वर्गों और तरीकों की सरल सूची?

जब मैं एक शब्द या एक बिंदु ("word.word") द्वारा अलग दो शब्दों का एक सेट सामना करते हैं, मुझे लगता है कि अगर एक मानक जावा वर्ग (और विधि) है जानना चाहते हैं, उदाहरण के लिए "पूर्णांक", या कुछ उपयोगकर्ता परिभाषित नाम। मैं में है कि क्या उचित वर्गों शामिल थे कोई दिलचस्पी नहीं हूँ/कोड में आयातित (अर्थात कोड अच्छी तरह से संकलित), और उपयोगकर्ता परिभाषित वर्गों है कि मानक जावा वर्गों के नाम को ओवरराइड के चरम मामलों भी मुझे रुचिकर नहीं लगता। दूसरे शब्दों में: मैं झूठी नकारात्मक के साथ ठीक हूं, मैं केवल "अधिकतर" होने में दिलचस्प हूं।

अगर वहाँ एक जगह wher मैं सभी जावा मानक वर्गों और विधियों में से सभी के नाम, रूप में की एक सरल सूची मिल सकता है आसानी से एक पाठ फ़ाइल या डेटाबेस में बचाया? (जे 2 एसई ठीक है, लेकिन जे 2 ईई बेहतर है)। मैं http://java.sun.com/j2se/ आदि से परिचित हूं, लेकिन ऐसा लगता है कि मुझे वहां से सभी नाम निकालने के लिए मैन्युअल काम की एक भयानक राशि की आवश्यकता है। इसके अलावा, सबसे हालिया जेडीके निष्पक्ष नहीं है, मैं 1.4 या 1.5 के साथ रह सकता हूं।

स्पष्टीकरण: मैं जावा में लेकिन अजगर में काम नहीं कर रहा हूँ, इसलिए मैं अपने पार्स तंत्र में जावा विशेष आदेशों का उपयोग नहीं कर सकते।

धन्यवाद

उत्तर

1

क्या javadoc साथ गलत क्या है? index सभी वर्गों, विधियों और स्थैतिक चर सूचीबद्ध करता है। आप शायद ब्रांड्स के लिए grep कर सकते हैं।

+0

+1 कुछ भी गलत नहीं है :) मैं इस सूची के रूप में परिचित नहीं था ... क्या प्रत्येक वर्ग के लिए विधियों की सूची तक पहुंचने के लिए एक समान सरल तरीका है (यानी कक्षाओं में से प्रत्येक की सूची सूचीबद्ध नहीं है) –

+0

इस स्तर पर मैं कक्षाओं की सूची का उपयोग करूँगा और बस "वास्तविक" वर्ग के बाद सब कुछ मान लेगा "असली" सदस्य है। कारण यह है कि इसे लागू करने में कम से कम समय लगेगा। धन्यवाद। –

1

पर http://java.sun.com/javase/6/docs/api/index-files/index-1.html

यह हजारों वर्गों और विधि है जो भारी हो सकता है के 10 के हो जाएगा सभी वर्गों और विधियों आप सूचकांक देख सकते हैं पाने के लिए।

मेरा सुझाव के बजाय आप अपने आईडीई में स्वत: पूर्ण उपयोग करें। यह आपको संदर्भ के आधार पर उपयुक्त सभी मिलान करने वाले वर्ग/विधियों को दिखाएगा। उदा। मान लीजिए कि आप एक चर

लंबे समय = प्रणाली है। ;

यह आप इस तरह के रूप में

लंबे समय = System.nanoTime() प्रणाली में सभी तरीकों जो एक लंबे मान, दिखाएगा

आप विधि/वर्गों का एक बहुत पता है यहां तक ​​कि अगर, यह आप लिखने का बहुत सा बचा सकता है।

+0

धन्यवाद, जिसमें मैन्युअल कार्य शामिल है (उस सूची पर एक रेगेक्स समस्याग्रस्त है) –

0

जब मैं एक शब्द या एक बिंदु ("word.word") द्वारा अलग दो शब्दों का एक सेट सामना करते हैं, मुझे लगता है कि अगर एक मानक जावा वर्ग (और विधि) है जानना चाहते हैं, उदाहरण के लिए "पूर्णांक", या कुछ उपयोगकर्ता परिभाषित नाम।

thats क्या आप के बाद कर रहे हैं, आप कुछ सरल प्रतिबिंब का उपयोग करके एक (सीमित) जावा वर्गों की सूची के बिना कर सकता है, तो: http://java.sun.com/developer/technicalArticles/ALT/Reflection/

try { 
    Class.forName("word.word"); 
    System.out.println("This is a valid class!"); 
} catch (ClassNotFoundException e) { 
    System.out.println("This is not a valid class."); 
} 

कुछ इस तरह अपने उद्देश्यों के लिए पर्याप्त होना चाहिए , उन्होंने कक्षाओं के एक उप-समूह तक सीमित नहीं होने का लाभ जोड़ा, और कक्षा के किसी भी पुस्तकालय द्वारा एक्स्टेंसिबल।

+0

मैंने यह नहीं कहा कि मैं जावा में काम कर रहा था :) मेरा कोड वास्तव में पायथन में है। –

1

यदि आप जावा और उनके तरीकों (ताकि आप डेटाबेस या एक्सएमएल फ़ाइल को पॉप्युलेट कर सकें) में सभी कक्षाओं की एक सूची बनाना चाहते हैं, तो आप एक एक्लिप्स-प्लगइन लिखना चाहेंगे जो पूरे जावाकोर मॉडल को देखता है , और इसके सभी वर्गों को स्कैन करता है (उदाहरण के लिए, ऑब्जेक्ट के सभी उपप्रकारों को खोजकर)। फिर सभी तरीकों का आकलन करें। आप तकनीकी रूप से किसी भी पुस्तकालय में इसे अपने संदर्भ में शामिल कर सकते हैं।

+1

हाँ, कस्टम डॉकलेट्स के साथ किसी भी आउटपुट का उत्पादन करना संभव होना चाहिए: http://java.sun.com/javase/6/docs/technotes/guides/javadoc/index.html – McDowell

1

भी एक विकल्प है या तो JRE/lib फ़ोल्डर से classlist फ़ाइल को पार्स या jsse.jar फ़ाइल को खोलने, वहाँ सभी वर्गों सूची और स्वयं द्वारा डॉट से अलग फॉर्म में उनकी एक सूची बनाएं।

+0

मुझे समझ में नहीं आता कि आप क्या समझते हैं मतलब है। क्या आप विस्तार से बता सकते हैं? –

+0

जेआरई के lib फ़ोल्डर में दो फाइलें हैं - क्लासलिस्ट और jsse.jar। प्राइमर में लाइब्रेरी में सभी कक्षाओं की सूची होती है, बाद वाला एक जार होता है जिसमें सभी मानक रनटाइम कक्षाएं होती हैं। आप अपने पार्सर में उपयोग करने के लिए मानक लाइब्रेरी कक्षाओं की एक सूची बनाने के लिए उन लोगों का उपयोग कर सकते हैं। – macbirdie

संबंधित मुद्दे