Я пытаюсь понять, как можно иметь значение Double
в ArrayList
из Integer
. numList
- это ArrayList
из Integer
, а значение из него - Double
.
Это код:
package bounded.wildcards;
import java.util.ArrayList;
import java.util.List;
public class GenericsDemo {
public static void main(String[] args) {
// Invariance Workaround
List<Integer> numList = new ArrayList<>();
GenericsDemo.invarianceWorkaround(numList);
System.out.println(numList);
}
static <T extends Number> void invarianceWorkaround(List<T> list) {
T element = (T) new Double(23.3);
list.add(element);
}
}
Это скомпилирует и запустит без ошибок.