java泛型测试

import java.lang.*;
import java.util.*;

public class Test {

    public static void main(String[] str) {
        List<B> arr = new ArrayList<B>(10);
        List<A> arr2 = new ArrayList<A>(10);
        Why(new A());
        Why(new B());
        doTest(new ArrayList<String>(123));
        doTest(arr);
        doTest(arr2);
        ExecTest(arr);
        ExecTest(arr2);

    }

    static <T extends A> void Why(T mm) {

    }

    static <T> void doTest(List<T> list) {

    }

    static void ExecTest(List<? extends A> list) {

    }
}

class A {
}

class B extends A {
}
 
 
一段关于泛型嵌套的代码:
    static <T> void right(List<? extends List<T>> lvData, List<T> refreshData) {

    }
    
    static <T> void error(List<List<T>> lvData, List<T> refreshData) {

    }
    public static void main(String args[]) throws Exception {
        List<ArrayList<Object>> data = null;
        ArrayList<Object> moreData = null;
        //编译通过
        right(data, moreData);
        //编译报错
        error(data, moreData);

    }
    
 
原文地址:https://www.cnblogs.com/mxw09/p/1965878.html