zoukankan      html  css  js  c++  java
  • 泛型的上下限以及通配符

    1  泛型中通配符: ? 

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

     1 public class Demo4 {
     2     public static void main(String[] args) {
     3         ArrayList<Integer> list1 = new ArrayList<>();
     4         ArrayList<Number> list2 = new ArrayList<>();
     5         
     6         HashSet<String> set = new HashSet<>();
     7         
     8         print(list1);
     9         print(list2);
    10 
    11     }
    12     
    13     //需求1: 定义一个函数可以接收接收任意类型的集合对象, 要求接收的集合对象只能存储Integer或者是Integer的父类类型数据。
    14     public static void print(Collection<? super Integer> c){
    15         
    16     }
    17 
    18 }

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

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

     1 public class Demo4 {
     2     public static void main(String[] args) {
     3         ArrayList<Integer> list1 = new ArrayList<>();
     4         ArrayList<Number> list2 = new ArrayList<>();
     5         
     6         HashSet<String> set = new HashSet<>();
     7         
     8         print2(list1);
     9         print2(list2);
    10     }
    11     
    12     //需求2: 定义一个函数可以接收接收任意类型的集合对象, 要求接收的集合对象只能存储Number或者是Number的子类类型数据。
    13     public static void print2(Collection<? extends Number> c){
    14         
    15     }
    16 }

     

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

  • 相关阅读:
    作为一个非计算机专业的人,你们是怎样进入IT行业的?
    第一次写博客
    变卖
    近2周关于Shadowing的总结
    二十九岁步入而立之年的思考
    最美的回忆漫天的雪
    有趣的房东夫妇
    遥远的思恋—我的儿子
    五年一轮回
    写在开工之前我的2010
  • 原文地址:https://www.cnblogs.com/shadowdoor/p/6818024.html
Copyright © 2011-2022 走看看