मैं विशिष्ट तरीकों से किसी विधि को कॉल को लक्षित करने के लिए पॉइंटकट बनाना चाहता हूं।विशिष्ट तरीकों में विधि कॉल के लिए AspectJ पॉइंटकट
ले निम्नलिखित:
class Parent {
public foo() {
//do something
}
}
class Child extends Parent {
public bar1() {
foo();
}
public bar2() {
foo();
}
public bar3() {
foo();
}
}
मैं foo के लिए कॉल पर एक बिंदु में कटौती करना चाहते हैं() पद्धतियों bar1 में() और bar3()
मैं
की तरह कुछ सोच रहा थाpointcut fooOperation(): call(public void Parent.foo() && (execution(* Child.bar1()) || execution(* Child.bar3()));
before() : fooOperation() {
//do something else
}
हालांकि, यह काम नहीं लगता है। कोई विचार?
धन्यवाद
के लिए यहाँ देखो मैं कहता हूँ कि हम इस एक भी कॉल से मेल होगा:
वैकल्पिक रूप से आप
cflow
pointcut की कोशिश कर सकते 'bar2()' में 'foo()' के लिए, इरादे के विपरीत? – ShiDoiSiहां, जो 'bar2()' में 'foo() 'को पकड़ लेगा, जो कि – kabal
हाहा का इरादा नहीं है। यहां एक अनुशंसा है: यदि आप bar2..barn से foo() को कैप्चर करना चाहते हैं, तो मेरे पॉइंट कट का उपयोग करें और बार 1 से foo को कॉल को अनदेखा करें। प्रत्येक बार जब एक नई बार जोड़ दी जाती है तो उस परिभाषा में आना और बदलना बहुत ही अच्छा नहीं है। – Rob