List<? super Integer>
означает, что вы можете вызывать метод с аргументом, типизированным как List of Integer или как List любого супертипа типа Integer.
Таким образом, одна альтернатива - дать ему список Integer:
ArrayList<Integer> ints = new ArrayList<>();
ints.add(new Integer(0));
numsUpTo(ints);
или вы можете назвать его списком чисел, например,
List<Number> nums = new ArrayList<>();
nums.add(new Double(1.4));
nums.add(new Integer(3));
numsUpTo(nums);
, или вы можете назвать его списком объектов, например,
List<Object> objects = new LinkedList<>();
objects.add("hello");
objects.add(new Integer(42));
objects.add(new Double(3.14));
numsUpTo(objects);
In во всех этих случаях вполне нормально, если numsUpTo добавляет целые числа в список, потому что целое число всегда является допустимым типом элемента.