2013-07-08 11 views
17

मैं जवासिस्ट जैसे उच्च स्तरीय बाइटकोड मैनिपुलेशन टूल की तलाश में हूं, लेकिन यह स्कैला विशिष्टताओं में से कुछ को समझता है। निचले स्तर के बाइटकोड मैनिपुलेशन उपकरण अपेक्षाकृत अज्ञेयवादी होना चाहिए, लेकिन मेरे उपयोग के मामलों के लिए जावस्सिस्ट के स्तर पर कुछ बेहतर है। हालांकि उस स्तर पर एक उपकरण को स्रोत भाषा और इसके बाइटकोड मैपिंग के बारे में जानना आवश्यक है। क्या ऐसा कुछ स्कैला के लिए मौजूद है? अब तक मैं बहुत सरल चीजों के लिए जालासिस्ट को स्कैला के साथ उपयोग करने में सक्षम हूं, लेकिन मुझे कुछ अन्य चीजों के लिए कुछ स्कैला/जावा मतभेदों से काटा गया है।क्या स्काला जागरूक उच्च स्तरीय बाइट-कोड मैनिपुलेशन टूल जैसे जैवसिस्ट है?

+0

आप कौन से कार्य करने की कोशिश कर रहे हैं? – Antimony

+0

एक समस्या जिसमें मैंने भाग लिया [वर्णित] [http://stackoverflow.com/questions/17385725/how-to-add-a-serialversionuid-to-a-class-instance-in-scala) और [यहां] (http://stackoverflow.com/questions/17384913/can-scala-2-10-reflection-emulate-this-javassist-functionality) –

उत्तर

1

मुझे नहीं लगता कि ऐसा उपकरण मौजूद है (अभी तक)। वर्तमान स्थिति यह है कि आप स्कैला के विभिन्न संस्करणों के साथ संकलित संकलन इकाइयों को मिश्रित नहीं कर सकते हैं, यानी स्कैला 2.9 के साथ संकलित एक वर्ग स्कैला 2.10 के साथ संकलित कक्षा के साथ अंतःक्रिया नहीं करेगी।

जब आप स्कैला 2.10 का उपयोग करते हैं, तो आप बाइटकोड संशोधन के समान लक्ष्यों तक पहुंचने के लिए Scala reflection और Scala macros का उपयोग कर सकते हैं। मेरे लिए यह सबसे भविष्य के सबूत तरीके की तरह दिखता है।

एक सीरियल संस्करण आईडी जोड़ने के उद्देश्य से आपके एक प्रश्न का उद्देश्य। स्कैला मैक्रोज़ के साथ यह निश्चित रूप से संभव होना चाहिए। स्काला मैक्रोज़ के साथ यह एपीआई परिवर्तनों के अनुसार बाहरी डेटाबेस में धारावाहिक संस्करण आईडी को प्रबंधित करने के लिए भी संभव है।

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