list 范型

是java泛型的两种用法:List<T>是泛型方法,List<?>是限制通配符

List<T>一般有两种用途:
1、定义一个通用的泛型方法。
伪代码:

public interface Dao{
  List<T> getList(){};
}

List<String> getStringList(){
  return dao.getList();//dao是一个实现类实例
}

List<Integer> getIntList(){
  return dao.getList();
}

上面接口的getList方法如果定义成List<?> ,后面就会报错。‘

2、限制方法的参数之间或参数和返回结果之间的关系。

List<T> getList<T param1,T param2>

这样可以限制返回结果的类型以及两个参数的类型一致。

List<?>一般就是在泛型起一个限制作用。
伪代码:

public Class Fruit(){}

public Class Apple extends Fruit(){}

public void test(? extends Fruit){};

test(new Fruit());
test(new Apple());
test(new String()); //这个就会报错
这样可以现在test方法的参数必须是Fruit或其子类。



List<T>一般有两种用途:
1、定义一个通用的泛型方法。
伪代码:

public interface Dao{
  List<T> getList(){};
}

List<String> getStringList(){
  return dao.getList();//dao是一个实现类实例
}

List<Integer> getIntList(){
  return dao.getList();
}

上面接口的getList方法如果定义成List<?> ,后面就会报错。‘

2、限制方法的参数之间或参数和返回结果之间的关系。

List<T> getList<T param1,T param2>

这样可以限制返回结果的类型以及两个参数的类型一致。

List<?>一般就是在泛型起一个限制作用。
伪代码:

public Class Fruit(){}

public Class Apple extends Fruit(){}

public void test(? extends Fruit){};

test(new Fruit());
test(new Apple());
test(new String()); //这个就会报错
这样可以现在test方法的参数必须是Fruit或其子类。
 

猜你喜欢

转载自blog.csdn.net/u012045045/article/details/84841365