Можно ли объявить массив чего-то, что расширяет класс?Array of <? extends T> в Java
я могу сделать:
Map[] foo;
T[] foo; //(in generic class)
Map... foo; //(as argument declaration for "implicit" array)
T... foo; //(as argument declaration in generic class for "implicit" array)
Но мне нужно что-то вроде:
<? extends Map>[] foo;
<? extends T>[] foo; //(in generic class)
<? extends Map>... foo; //(as argument declaration for "implicit" array)
<? extends T>... foo; //(as argument declaration in generic class for "implicit" array)
Он может быть использован какой-то List<? extends T>
, но вместо этого он не совсем массив. Для примера, если вы хотите использовать его в так:
public class MyClass<T> {
public void foo(int someOtherStuff, <? extends T>... optionalArray){
//some code
}
}
Может быть, «неявное» массив не является правильным, пожалуйста, скажите мне, как они называются правильно.
Umm, все ссылки в Java уже могут содержать подтипы, поэтому что-то вроде 'Number [] foo = {new Integer (0), new Double (1), new Long (2), ...};' уже отлично. Это то, что вы хотите? – Radiodef