ডকুমেন্টেশন অনুযায়ী :
[
java.lang.reflect.]Proxyগতিশীল প্রক্সি ক্লাস এবং দৃষ্টান্তগুলি তৈরি করার জন্য স্থির পদ্ধতি সরবরাহ করে এবং এটি সেই পদ্ধতিগুলির দ্বারা তৈরি সমস্ত গতিশীল প্রক্সি ক্লাসের সুপারক্লাস।
newProxyMethodপদ্ধতি (গতিশীল প্রক্সি জেনারেট করার জন্য দায়ী) নিম্নলিখিত স্বাক্ষর রয়েছে:
public static Object newProxyInstance(ClassLoader loader,
Class<?>[] interfaces,
InvocationHandler h)
throws IllegalArgumentException
দুর্ভাগ্যবশত, একটি গতিশীল প্রক্সি যে উৎপাদিত থেকে বাধা দেয় এক প্রসারিত (বদলে একটি নির্দিষ্ট বিমূর্ত বর্গ বাস্তবায়নে নির্দিষ্ট ইন্টারফেস)। এটি বোঝা যায়, java.lang.reflect.Proxy"সমস্ত গতিশীল প্রক্সিগুলির সুপারক্লাস" বিবেচনা করে এটি অন্য শ্রেণিকে সুপারক্লাস হতে বাধা দেয়।
সুতরাং, এর জন্য এমন কোনও বিকল্প আছে java.lang.reflect.Proxyযেগুলি গতিশীল প্রক্সি তৈরি করতে পারে যা একটি নির্দিষ্ট বিমূর্ত শ্রেণীর উত্তরাধিকার সূত্রে প্রাপ্ত, বিমূর্ত পদ্ধতিতে সমস্ত কলগুলি ডাকে হস্তান্তরকারীকে পুনর্নির্দেশ করে ?
উদাহরণস্বরূপ, ধরুন আমার একটি বিমূর্ত শ্রেণি রয়েছে Dog:
public abstract class Dog {
public void bark() {
System.out.println("Woof!");
}
public abstract void fetch();
}
এমন কোন শ্রেণি রয়েছে যা আমাকে নিম্নলিখিতগুলি করতে অনুমতি দেয়?
Dog dog = SomeOtherProxy.newProxyInstance(classLoader, Dog.class, h);
dog.fetch(); // Will be handled by the invocation handler
dog.bark(); // Will NOT be handled by the invocation handler