प्रलेखन के अनुसार :
[
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