मैं जैसे निम्नलिखित वर्ग को परिभाषित करना चाहते हैं:क्या यह जावा में जेनेरिक के साथ एक सीमा है?
public class CollectionAttribute<E extends Collection<T>> {
private String name;
private E value;
public CollectionAttribute(String name, E value) {
this.name = name;
this.value = value;
}
public E getValue() { return value; }
public void addValue(T value) { value.add(T); }
}
यह संकलन नहीं होगा (cannot resolve symbol T
)। यदि मैं निम्नलिखित के साथ कक्षा घोषणा को प्रतिस्थापित करता हूं:
public class CollectionAttribute<E extends Collection<?>>
तब मैं संग्रह के पैरामीट्रिज्ड प्रकार का संदर्भ नहीं दे सकता।
क्या मुझे कुछ याद आ रहा है या क्या मैं जावा में जेनेरिक के साथ सीमा तक पहुंच गया हूं?
: -o कोई भी संक्षिप्त स्पष्टीकरण क्यों? – OscarRyz
@ समर्थन: अन्यथा, कोई 'टी' प्रकार नहीं है। – SLaks
यह अनावश्यक नहीं है? अब जब मैं इस ऑब्जेक्ट को बनाता हूं तो मुझे अपने टी को दो बार निर्दिष्ट करना होगा :( –