public class Foo {    public static void main(String[] args) {        // Read for E, Write for S        // 读取时使用 extends, 写入时使用 super        Foo foo = new Foo();        List<Integer> ints = new ArrayList<>();        foo.read(ints);        List<? super Number> unknown = new ArrayList<>();        foo.write(unknown);    }    // Read for E    // 用于读场景, 取出的所有元素的都向上转型为T,这里T为Number类型    public void read(List<? extends Number> nums) {        Number one = nums.get(0);        Number two = nums.get(1);        for (Number num : nums) {            // do sth for num        }    }    // Write for S    // 用于写场景,可以添加T的子类型,这里T为Number类型    public void write(List<? super Number> nums) {        nums.add(1);        nums.add(3.14);        nums.add(new BigDecimal(100));    }}