मान लीजिए मैं निम्नलिखित पैटर्न मेरी कोड में अक्सर दोहरा है:गिइस: मैं सभी प्रकार के लिए जेनेरिक कैसे बांधूं?
class A<T> {
@Inject
public A(List<T> list) {
// code
}
}
मैं सभीList<T>
ArrayList<T>
करने के लिए बाध्य करना चाहते हैं। मुझे पता है कि मैं एक स्पष्ट कच्चे प्रकार को बांधने के लिए TypeLiteral
एस का उपयोग कर सकता हूं, उदाहरण के लिए, List<String>
, लेकिन क्या यह सभी प्रकार के लिए ऐसा करने के लिए वैसे भी है?
मूल रूप से, इस कोड को असफल नहीं होना चाहिए क्योंकि मैं सूची स्पष्ट रूप से बाध्य नहीं किया:
injector.getInstance(new Key<A<Integer>>(){});
मुझे क्या मिला और अब तक की कोशिश की के आधार पर। यह संभव नहीं है। –
इस तरह के "वाइल्डकार्ड" बाध्यकारी की कुछ चर्चा यहां पाई जा सकती है: https://github.com/google/guice/issues/852 –