Java 泛型返回值 泛型 T 与 T 的区别

最近看源码

有的方法返回值是

有的方法返回值是T 

那么区别在哪里?

public class Request {

    private  T getListFisrt(List data) {
        if (data == null || data.size() == 0) {
            return null;
        }
        return data.get(0);
    }

    private  T getListFisrt2(List data) {
        if (data == null || data.size() == 0) {
            return null;
        }
        return data.get(0);
    }

    public static void main(String[] args) {
        List data = new ArrayList<>();
        List data2 = new ArrayList<>();
        int a = new Request().getListFisrt(data);   //入参由List的T决定,
                                                            //因为返回值为 T,所以入参不受Request影响
        new Request().getListFisrt2(data);//error,入参由request的T决定,受Request影响
        String aa = new Request().getListFisrt(data2);//没区别
        String bb = new Request().getListFisrt2(data2);//没区别
    }
}

 

你可能感兴趣的:(java)