en aşağıdaki yönünü düşünelim:AspectJ ile bir yöntem çağrısı gerçekleştirerek nesne örneğini almak mümkün mü?
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
kamu yöntemlere tüm çağrıları yakalayan ve bunlardan herhangi denir hemen önce before
tavsiye çalışır.
Aramayı yapan nesne örneğini,numaralı öneride herkese açık Server
yöntemine almak mümkün mü? Evet ise nasıl? Bu() pointcut kullanabilirsiniz
Bu yüzden benim yöntemimin arayıcısı emin misiniz? Sunucu yöntemi statik koddan çağrılsa bile mi? – JVerstry
@JVerstry: [document] (http://www.eclipse.org/aspectj/doc/released/progguide/semantics-pointcuts.html), "this' pointcut" öğesinin statik bağlamlardan herhangi bir birleşim noktalarıyla eşleşmeyeceğini belirtir. ." –
Belgelerin, "statik bir yöntem çalıştırması durumunda, bunun olmaması anlamına gelir, bu yüzden bu()" kullanılarak yakalanamaz. –