क्या ABCL (जो कि किसी अन्य वर्ग का विस्तार करता है) के साथ जावा क्लास बनाने का कोई तरीका है?क्या आप एबीसीएल के साथ जावा क्लास लिख सकते हैं?
उत्तर
कोई भी जावा क्लास को JVM पैकेज में कार्यों के माध्यम से सीधे JVM बाइटकोड के रूप में लिख सकता है, जो कोड एबीसीएल का स्वयं का कंपाइलर उपयोग करता है। Abcl-0.25.0 के रूप में, JAVA:JNEW-RUNTIME-CLASS method के लिए असमर्थित कोड है जो किसी को जावा क्लास को गतिशील रूप से लिखने की अनुमति देता है जो निष्पादन के लिए लिस्प विधि को कॉल करता है। कोड ऑब्जेक्टवेब ASM BCEL से कक्षाओं का उपयोग करता है जो JVM क्लासपाथ में मौजूद होना चाहिए। वास्तव में एएसएम बीसीईएल पुस्तकालय के किस संस्करण की आवश्यकता है, और क्या यह वर्तमान एबीसीएल के साथ काम करता है, यह अनचाहे है। एबीसीएल अंक #153 समकालीन एबीसीएल कार्यान्वयन में इसका समर्थन करने के लिए आवश्यक कार्य को ट्रैक करता है। JINTERFACE-कार्यान्वयन:
लेकिन अगर कोई एक मौजूदा जावा इंटरफेस है, जिसके लिए एक लिस्प आधारित विधियों का उपयोग करने के एक कार्यान्वयन प्रदान करना चाहते हैं नहीं है, इस प्रक्रिया काफी सरल है (! और समर्थित)
प्रासंगिक समारोह जावा है जिसका उपयोग BankAccount example में प्रदर्शित किया गया है।
जावा इंटरफ़ेस
public interface BankAccount {
public int getBalance();
public void deposit(int amount);
public void withdraw(int amount);
}
निम्नलिखित लिस्प कोड के रूप में परिभाषित के लिए वर्तमान JVM में एक प्रयोग करने योग्य जावा प्रॉक्सी बनाता है:
(defparameter *bank-account-impl*
(let ((balance 1000))
(jinterface-implementation
"BankAccount"
"getBalance"
(lambda()
balance)
"deposit"
(lambda (amount)
(let ((amount (jobject-lisp-value amount)))
(setf balance (+ balance amount))))
"withdraw"
(lambda (amount)
(let ((amount (jobject-lisp-value amount)))
(setf balance (- balance amount)))))))
जावा से कार्यान्वयन के लिए एक संदर्भ पाने के लिए, एक का उपयोग करता है BankMainAccount.java
...
org.armedbear.lisp.Package defaultPackage
= Packages.findPackage("CL-USER");
Symbol bankAccountImplSymbol
= defaultPackage.findAccessibleSymbol("*BANK-ACCOUNT-IMPL*");
LispObject value = bankAccountImplSymbol.symbolValue();
Object object = ((JavaObject) value).getObject();
BankAccount account = (BankAccount) object;
System.out.println("Initial balance: " + account.getBalance());
account.withdraw(500);
System.out.println("After withdrawing 500: " + account.getBalance());
...
This example एबीसीएल में जावा इंटरफ़ेस को कार्यान्वित करने का तरीका दिखाता है।
- 1. क्या आप [पीसी] पर लिख सकते हैं?
- 2. क्या आप एक नामांकित पाइप क्लाइंट के साथ पढ़ और लिख सकते हैं?
- 3. एबीसीएल संकलन और प्राइमेटिव
- 4. क्या आप एक साथ डीएलएस बंडल कर सकते हैं?
- 5. ऐप्पलस्क्रिप्ट के साथ आप क्या कर सकते हैं?
- 6. क्या आप स्टोरीबोर्ड के साथ उन्नत यूआई बना सकते हैं?
- 7. क्या आप UIControlEventAplicationReserved के साथ कस्टम ईवेंट कर सकते हैं?
- 8. क्या आप सबवर्सन के साथ आंशिक चेकआउट कर सकते हैं?
- 9. क्या आप सी # में सुंदरता के रूप में एक क्रमपरिवर्तन फ़ंक्शन लिख सकते हैं?
- 10. क्या आप एक ही समय में एक सॉकेट इनपुट और आउटपुट स्ट्रीम लिख सकते हैं?
- 11. क्या कई धागे एक साथ फाइल में लिख सकते हैं, यदि सभी धागे विभिन्न स्थानों पर लिख रहे हैं?
- 12. क्या हम खुद को एक ईओएफ चरित्र लिख सकते हैं?
- 13. क्या हम एक फ़ाइल में हैशटेबल लिख सकते हैं?
- 14. क्या आप एक एंकर पॉइंट पर 301 रीडायरेक्ट लिख सकते हैं?
- 15. आप कैनकन क्षमता कैसे लिख सकते हैं? और एचबीटीएम रिलेशनशिप के संदर्भ में दोनों कामों को सुलभ कर सकते हैं?
- 16. आप इन सभी तरीकों से कैसे लड़ते हैं? - जावास्क्रिप्ट और इसके लाखों विभिन्न तरीकों से आप इसे लिख सकते हैं
- 17. आप डॉल्विक वीएम (एंड्रॉइड के वीएम) पर क्या कर सकते हैं जो आप सन वीएम में कर सकते हैं?
- 18. क्या आप "अदृश्य सीमा" बना सकते हैं?
- 19. सी में आप क्या नहीं कर सकते हैं जिसे आप उद्देश्य-सी में कर सकते हैं?
- 20. हम स्कैला में maven2 प्लगइन कैसे लिख सकते हैं?
- 21. क्या आप स्प्रिंग टास्कएक्सटेक्टर के साथ भविष्य/भविष्यवाणियों के ऑब्जेक्ट्स का उपयोग कर सकते हैं?
- 22. आप जावा के साथ वेबसाइट कैसे बनाते हैं?
- 23. प्रोटोटाइप विरासत के साथ आप किस पैटर्न का उपयोग कर सकते हैं जिसे आप कक्षा के साथ नहीं कर सकते?
- 24. क्या आप वीबी में लिखित असेंबली के खिलाफ परीक्षण करने के लिए सी # में यूनिट टेस्ट असेंबली लिख सकते हैं?
- 25. क्या आप कक्षा के कन्स्ट्रक्टर को ओवरराइड कर सकते हैं और विरासत में उपयोग कर सकते हैं?
- 26. क्या आप UINavigationBar के ऊपर एक UIView जोड़ सकते हैं?
- 27. क्या आप सिग्नेशन के लिए तर्क दे सकते हैं?
- 28. आवेदन% APPDATA% में नहीं लिख सकते हैं (लेकिन उपयोगकर्ता कर सकते हैं)
- 29. जावा ऐप्स वीबी ऐप्स के साथ एकीकृत कर सकते हैं?
- 30. क्या आप वीबी में पैरामीटर के साथ एक उप (कन्स्ट्रक्टर) का उत्तराधिकारी बना सकते हैं?
यदि मैं पूछ सकता हूं तो एबीसीएल क्या है? –
सशस्त्र भालू आम लिस्प। यह एक सामान्य लिस्प कार्यान्वयन है जो JVM पर चलता है। – compman
यह वही नहीं है जो मैंने पूछा था, लेकिन यह वही करता है जो मैं करना चाहता हूं। [यह यूआरएल] (http://trac.common-lisp.net/armedbear/wiki/JavaScriptingAPI) में "जावा इंटरफेस का कार्यान्वयन" अनुभाग है। आप (जावा में) जावा ऑब्जेक्ट्स बना सकते हैं जो जावा इंटरफेस को कार्यान्वित करते हैं। – compman