最近看源码
有的方法返回值是<T> T
有的方法返回值是T
那么区别在哪里?
public class Request<T> {
private <T> T getListFisrt(List<T> data) {
if (data == null || data.size() == 0) {
return null;
}
return data.get(0);
}
private T getListFisrt2(List<T> data) {
if (data == null || data.size() == 0) {
return null;
}
return data.get(0);
}
public static void main(String[] args) {
List<Integer> data = new ArrayList<>();
List<String> data2 = new ArrayList<>();
int a = new Request<String>().getListFisrt(data); //入参由List<T>的T决定,
//因为返回值为<T> T,所以入参不受Request<T>影响
new Request<String>().getListFisrt2(data);//error,入参由request<T>的T决定,受Request<T>影响
String aa = new Request<String>().getListFisrt(data2);//没区别
String bb = new Request<String>().getListFisrt2(data2);//没区别
}
}