Junior — Middle
Proksi qoʻllangandan soʻng ob'ektning asl metodini qanday chaqirish mumkin?
sobes.tech AI
AIdan javob
Java'da, agar siz dinamik proxy (masalan, java.lang.reflect.Proxy orqali) foydalanayotgan bo'lsangiz, ob'ektning metod chaqiruvi InvocationHandler implementatsiyasi orqali amalga oshiriladi. Proxy qo'llanilgandan so'ng ob'ektning asl metodini chaqirish uchun, invoke metodining ichida, proxy qilinayotgan asl ob'ekt ustida mos metodni aniq chaqishingiz kerak.
Misol:
public class MyInvocationHandler implements InvocationHandler {
private final Object original;
public MyInvocationHandler(Object original) {
this.original = original;
}
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
// Chaqarishdan oldin qo'shimcha mantiq qo'shish mumkin
System.out.println("Metod chaqiruvi oldidan");
// Asl ob'ekt ustida asl metodni chaqirish
Object result = method.invoke(original, args);
// Chaqarishdan keyin qo'shimcha mantiq qo'shish mumkin
System.out.println("Metod chaqiruvi keyin");
return result;
}
}
Shu tarzda, proxy chaqiruvni ushlab qoladi va invoke ichida, method.invoke(original, args) orqali asl metodni chaqirasiz.