संभव डुप्लिकेट:
Is it possible to solve the “A generic array of T is created for a varargs parameter” compiler warning?जावा: प्रकार की सुरक्षा: एक के एक सामान्य सरणी एक varargs पैरामीटर के लिए बनाई गई है
पर विचार करें यह दिया जाता है:
interface A<T> { /*...*/ }
interface B<T> extends A<T> { /*...*/ }
class C { /*...*/ }
void foo(A<T>... a) { /*...*/ }
अब , कुछ अन्य कोड foo
का उपयोग करना चाहते हैं:
B<C> b1 /* = ... */;
B<C> b2 /* = ... */;
foo(b1, b2);
यह मैं चेतावनी
Type safety : A generic array of A is created for a varargs parameter
देता है तो मैं इस के लिए कॉल बदल दिया है:
foo((A<C>) b1, (A<C>) b2);
यह अभी भी मुझे एक ही चेतावनी देता है।
क्यों? मैं कैसे इसे ठीक कर सकता हूं?
उल्लेख परियोजना सिक्का सुविधा अब उपलब्ध है - देखें [ @SafeVarargs] (http://docs.oracle.com/javase/7/docs/api/java/lang/SafeVarargs.html) जावा 7 में –