0
点赞
收藏
分享

微信扫一扫

泛型的上下限

泛型的上下限

     需求1:定义一个函数可以接收任意类型的集合对象,要求接收的集合对象只能存储Integer或者是Integer的父类类型数据。

     需求2:定义一个函数可以接收任意类型的集合对象,要求接收的集合对象只能存储Number或者是Number的子类类型数据。

 

     泛型中的通配符:?

 

     ? super Integer   只能存储Integer或者是Integer父类元素。  泛型的下限

     ? extends Number  只能存储Number或者是Number类型的子类数据。 泛型的上限

package com.cn.genericity;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
/**
* Author:Liu Zhiyong
* Version:Version_1
* Date:2016年7月17日21:54:50
* Desc:泛型的上下限
* 需求1:定义一个函数可以接收任意类型的集合对象,要求接收的集合对象只能存储Integer或者是Integer的父类类型数据。
* 需求2:定义一个函数可以接收任意类型的集合对象,要求接收的集合对象只能存储Number或者是Number的子类类型数据。
*
* 泛型中的通配符:?
*
* ? super Integer 只能存储Integer或者是Integer父类元素。 泛型的下限
* ? extends Number 只能存储Number或者是Number类型的子类数据。 泛型的上限
*
*/
public class Demo5 {
public static void main(String[] args) {
ArrayList<Integer> arrayList1 = new ArrayList<Integer>();
ArrayList<Number> arrayList2 = new ArrayList<Number>();

HashSet<String> hashSet1 = new HashSet<String>();
HashSet<Character> hashSet2 = new HashSet<Character>();

ArrayList<Object> arrayList3 = new ArrayList<Object>();
print(arrayList1);
print(arrayList2);
// print1(arrayList3);//×
// print(hashSet1); //×
// print(hashSet2); //×
}
//泛型的下限
// public static void print(Collection<?> c){
public static void print(Collection<? super Integer> c){

}

//泛型的上限
public static void print1(Collection<? extends Number> c){

}
}

举报

相关推荐

scala泛型上下界

0 条评论