के निम्न पहलू की कल्पना करते हैं:क्या AspectJ के साथ एक विधि कॉल करने वाले ऑब्जेक्ट उदाहरण को पुनर्प्राप्त करना संभव है?
aspect FaultHandler {
pointcut services(Server s): target(s) && call(public * *(..));
before(Server s): services(s) {
// How to retrieve the calling object instance?
if (s.disabled) ...;
}
}
pointcut Server
की सार्वजनिक तरीकों के लिए सभी कॉल कब्जा और before
सलाह बस से पहले इनमें से किसी भी कहा जाता है चलाता है।
before
सलाह में सार्वजनिक Server
विधि को कॉल करने वाले ऑब्जेक्ट इंस्टेंस को पुनर्प्राप्त करना संभव है? यदि हां, तो कैसे?
तो 'ओ' निश्चित रूप से मेरी विधि का कॉलर होगा? भले ही सर्वर विधि स्थिर कोड से कहा जाता है? – JVerstry
@ जेवीरस्ट्री: [प्रलेखन] (http://www.eclipse.org/aspectj/doc/released/progguide/semantics-pointcuts.html) कहता है कि 'यह' पॉइंटकट "स्थिर संदर्भों से किसी भी शामिल बिंदु से मेल नहीं खाएगा । " –
मुझे लगता है कि प्रलेखन का अर्थ है "एक स्थिर विधि निष्पादन के मामले में, ऐसा कोई नहीं है, इसलिए इसे इस()" का उपयोग करके कैप्चर नहीं किया जा सकता है। –