2011-12-04 10 views
5

जावा में विधियों को रोकने का एक आसान तरीका है। मुझे आवश्यक विधियों में एक एनोटेशन जोड़ने की आवश्यकता है ताकि विधि के माध्यम से जाने से पहले तर्क का एक टुकड़ा बुलाया जा सके।जावा - एनोटेशन और अवरोध विधियों का उपयोग करें?

public void verifyActivity() { 
    // Asset if you are on a wrong page 
} 

@VerifyActivity 
public void testLogin() { 
    // Login for my automate test 
} 

@VerifyActivity 
public void testSomethingElse() { 
    // Test some other UI Automation stuff 
} 

संपादित करें:

सिफारिश guice पुस्तकालय एंड्रॉयड क्षुधा AOP शामिल नहीं है के लिए। क्या कोई पुस्तकालय जोड़ने के बिना प्रतिबिंब का उपयोग करके इसे हासिल करना संभव है?

+0

हाय @ एरैक्सट, क्या आपको कोई समाधान मिला? यदि आपने किया, तो क्या आप साझा कर सकते हैं? मुझे एक पुस्तकालय मिला; https://code.google.com/p/android-method-interceptor/ यह दस्तावेज नहीं है और मैं समझ नहीं पा रहा हूं कि क्या करना है। – slhddn

उत्तर

2

गुइस एनोटेशन लागू करने का आसान तरीका प्रदान करता है। इसकी जांच करें।

http://code.google.com/p/google-guice/wiki/AOP

http://code.google.com/p/google-guice/

+0

धन्यवाद, मैंने गिइस का उपयोग करने का फैसला किया, और चूंकि मैं इसे सीधे अपने एंड्रॉइड ऐप पर उपयोग नहीं कर रहा हूं, इसलिए कोई प्रदर्शन समस्या नहीं होनी चाहिए। – aryaxt

1

के रूप में sid मलानी ने कहा Google Guice इस लिए अच्छा है। सामान्य तौर पर आप aspect oriented programming tutorials पर पढ़ना चाहते हैं ... वहाँ है कि उपयोग की रूप में अच्छी तरह

0

के माध्यम से इंटरफेस के कोड जोड़ने के बाद मुझे लगता है कि शक हो सकता है JMangler कहा जाता है एक अच्छा उपकरण है यह किसी भी तृतीय पक्ष libs के बिना अच्छी तरह से किया जा सकता है।

सीजीएलआईबी नामक एक पुस्तकालय है, जो ऐसी चीजों में सक्षम है।

असल में यह रनटाइम पर अवरुद्ध वर्ग का उप-वर्ग बना देगा। आप एक InvocationHandler को लागू करके विधियों को "ओवरराइड" करने में सक्षम होंगे, जो सुपरक्लास विधियों में से किसी एक को प्रॉक्सी के रूप में कार्य करेगा।