Java第八章泛型

八、泛型

1.在集合中使用泛型 

 

Map
 
Map<String,Integer> map = new HashMap<>();
map.put("AA",33);  

List

List<Integer> list = new ArrayList<Integer>()
list.add(78);
Iterator<Integer> it = list.iterator();
while(it.hasNext()){
    sysout(it.next());
}


entry

Set<Map.entry<String,Integer>> set = map.entrySet();
for(Map.Entry<String,Integer> o : set){
    sysout(o.getKey() + "--->" +o.getValue());
}

 

 

 

 

2.自定义泛型类、泛型接口、泛型方法

 

1.当实例化泛型类的对象时,指明泛型的类型
 指明之后,对应的类中所有使用泛型的位置,都变为实例化中指定的泛型的类型
2.如果我们自定义了泛型类,但是在实例化时没有使用,那么默认类型是Object类的
 继承泛型类或泛型接口时,可以指明泛型的类型
    private T t;
    List<T> list = new ArrayList<>();
自定义泛型类的使用:
Order<Boolean> order = new Order<Boolean>();

声明泛型方法
public <E> E getE(E e){
 return e;
}
//当通过对象调泛型方法时,指明泛型方法的类型
调用泛型方法
Integer i =  order.getE(34);
Double d= order.getE(2.3);

 

 

 

  

  自定义泛型类

 

  泛型类注意点

 

泛型类
1.静态方法中不能使用类的泛型
2.如果泛型类是一个接口或抽象类,则不能创建泛型类的对象。
3.不能在catch中使用泛型
4.从泛型类派生子类,泛型类型需具体化
把一个集合中的内容限制为一个特定的数据类型。

 

 

 

 

3.泛型与继承的关系

 

4.通配符

 

? extends A:可以存放A及其子类

? super   A:可以存放A及其父类

  注意:

 

猜你喜欢

转载自www.cnblogs.com/yangHS/p/10699725.html