जेडीके प्रॉक्सी क्लास केवल फैक्ट्री विधि newProxyInstance() में इंटरफेस स्वीकार करता है।जेडीके गतिशील प्रॉक्सी केवल इंटरफेस के साथ क्यों काम करता है?
क्या कोई कामकाज उपलब्ध है, या वैकल्पिक कार्यान्वयन? यदि प्रॉक्सी के उपयोग के लिए उन्हें सक्षम करने के लिए मुझे इंटरफ़ेस में विधियों को निकालना है तो उपयोग के मामले सीमित हैं। मैं उन्हें रनटाइम के दौरान एनोटेशन आधारित क्रियाओं को लागू करने के लिए लपेटना चाहता हूं।
public static <T> T getProxy(T obj) {
InvocationHandler ih = new InjectProxy(obj);
ClassLoader classLoader = InjectProxy.class.getClassLoader();
return (T) Proxy.newProxyInstance(classLoader, obj.getClass().getInterfaces(), ih);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
}
ठीक है, सिद्धांत रूप में आप एएसएम जैसे बाइटकोड लाइब्रेरी का उपयोग कक्षा-आधारित प्रॉक्सी बनाने के लिए कर सकते हैं। –
@ क्रिक, कुछ इकाई परीक्षण नकली पुस्तकालय यह करते हैं। आपको एक व्युत्पन्न कक्षा बनाने की आवश्यकता है जो आपके इच्छित तरीकों को ओवरराइड करता है। (या तो स्वचालित रूप से या मैन्युअल रूप से) –
क्या आपने एस्पेक्ट-जे माना है जो इस तरह की चीज करने के लिए डिज़ाइन किया गया है? –