日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java中泛型上限,下限应用

發布時間:2025/3/8 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java中泛型上限,下限应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
v 一.程序中無形之中用到的泛型 import java.util.*; class Person implements Comparable<Person>{String name;int age;Person(){name = "";age = 0;}Person(String name, int age){this.name = name;this.age = age;}public String toString(){return name + "...." + age;}public int compareTo(Person o){if(name.compareTo(o.name)==0)return o.age - age;return o.name.compareTo(name);} }class Student extends Person{int score;public Student(){super();}public Student(String name, int age, int score){super(name, age);this.score = score;}public String toString(){return name + "...." + age + "...." + "score: " + score;} }class Worker extends Person{int salary;public Worker(){super();}public Worker(String name, int age, int salary){super(name, age);this.salary = salary;}public String toString(){return name + "...." + age + "...." + "salary: " + salary;} }class ComparatorPerson implements Comparator<Person>{public int compare(Person o1, Person o2){if(o1.name.compareTo(o2.name)==0)return o1.age - o2.age;return o1.name.compareTo(o2.name);} }public class Test{public static void main(String[] args){ArrayList<Person> arr = new ArrayList<Person>();arr.add(new Person("hujunzheng", 22));arr.add(new Person("caihaibin", 21));arr.add(new Person("huangweidong", 22));ArrayList<Student> arr1 = new ArrayList<Student>();arr1.add(new Student("hujunzheng", 22, 500));arr1.add(new Student("caihaibin", 21, 444));arr1.add(new Student("huangweidong", 22, 777));ArrayList<Worker> arr2 = new ArrayList<Worker>();arr2.add(new Worker("789", 22, 500));arr2.add(new Worker("465", 21, 444));arr2.add(new Worker("798", 22, 777));//public boolean addAll(Collection<? extends E> c)// 泛型的上限:用于存儲的數據// 如果不是<? extends E> 而只是<E> 那么E的子類型就不能加載進來!因為Collection<Person> 和 ArrayList<Student>泛型管理的不是同一數據類型// 而 <? extends E> 要求傳進來的對象實例管理的泛型只要是 E 或者是 E的子類都行! arr.addAll(arr1);arr.addAll(arr2);Object[] oo = null;Arrays.sort(oo=arr.toArray());for(Object o : oo)System.out.println(o);//public TreeSet(Comparator<? super E> c); 傳遞的是比較泛型為 E 或者是 E的父類的比較器//在進行 E類型兩個數據比較的時候, 用 E類 或者 E類型的父類型進行接收,并使用 ?類型的定義的比較方式! System.out.println("泛型上限,下限...................................................");TreeSet<Worker> tw = new TreeSet<Worker>(new ComparatorPerson());// E 是 Worker, 傳遞的是其父類Person的比較器 tw.addAll(arr2);for(Iterator it = tw.iterator(); it.hasNext(); )System.out.println(it.next());TreeSet<Student> ts= new TreeSet<Student>(new ComparatorPerson());// E 是 Student, 傳遞的是其父類Person的比較器 ts.addAll(arr1);for(Object o : ts.toArray())System.out.println(o);//上述的Worker 和 Student在TreeSet中排序時使用的比較器都是Person類實現的比較器 } } v 二.簡單的理解

?

ArrayList<Person> alist = new ArrayList<Person>(); ArrayList<? extends Person> list = new ArrayList<Student>(); alist.addAll(list);
Person p = new Person();
Student s = new Student();
//compile error
list.add(p);或者 list.add(s);

一般來講,定義成<? extends T>的參數通常只能用來從里面取數據,而不能用add方法添加數據。

ArrayList<? super Person> list = new ArrayList<Person>(); Student s = new Student(); list.add(s); s = (Student) list.get(0);

而定義成<? super T>的參數是可以用add方法來進行數據的添加的。它接受的 T類型或者T的父類,為什么Student是Person的子類但是仍能接受呢?因為在加入的時候講Sutdent進行了向上轉型為Object,這就是為什么在取出元素的時候是Object類型了!

轉載于:https://www.cnblogs.com/hujunzheng/p/3872633.html

總結

以上是生活随笔為你收集整理的java中泛型上限,下限应用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: av在线免| 欧美一区二区三区久久综合 | 超碰资源在线 | 久草www| 免费观看a级片 | 在线观看av不卡 | 影音先锋亚洲一区 | 黄色视屏在线免费观看 | 秋霞国产精品 | 国内自拍第一页 | 免费看的黄色网 | 黄色免费在线观看网站 | 一级在线观看 | 成人精品一区二区三区电影 | 怡红院最新网址 | 国产精品久久综合视频 | 日本99视频 | 碰碰97 | 荔枝视频污 | 国产一区二区不卡在线 | 亚洲一区二区三区加勒比 | 亚洲美女一区二区三区 | 偷拍视频一区 | 看av在线 | 国产在线一区二区视频 | 健身教练巨大粗爽gay视频 | 嫩草视频网站 | 性生交大片免费看视频 | 中文字幕av亚洲精品一部二部 | 波多野结衣一区二区三区高清 | 久久久一区二区 | 国产精品爽爽久久 | 欧美不卡一区二区三区 | 亚洲第一天堂在线观看 | 久久久久成人片免费观看蜜芽 | 国产精品午夜福利视频234区 | 69中国xxxxxxxxx96| 欧美精品一区二区三区四区五区 | 国产三级不卡 | 国产113页 | 熟女人妻aⅴ一区二区三区60路 | 午夜久久网站 | 九草视频在线 | 成人在线小视频 | 麻豆成人入口 | 拍摄av现场失控高潮数次 | 成人做爰69片免费看 | 伊人逼逼 | 日韩操操操 | 无限资源日本好片 | 欧美人与牲动xxxx | 777四色 | 欧美aⅴ| 成人网导航 | 成人免费一区二区 | 亚洲视频123 | 国产色a | 五月天色综合 | 欧洲美女毛片 | 国产男女在线 | 天天操夜夜操夜夜操 | 麻豆中文字幕 | 亚洲黄色网址 | 国产精品一区二区三区四区 | 国产成人精品免费在线观看 | 人人干av | 男生裸体视频 | 国产二页 | 欧美精品区 | 日本久久99 | 免费成人看片 | 国产123区在线观看 91国产一区二区 | 91av不卡 | 欧美色女人 | 乱一色一乱一性一视频 | 亚洲一区欧洲一区 | 久久乐视频 | 北条麻妃一区二区三区 | 国产永久视频 | 我看黄色一级片 | 久久爱综合网 | www.亚洲激情 | 成人中文视频 | 草草影院第一页 | 日本午夜影院 | 成人深夜视频 | 91抖音在线观看 | 国产精品国产三级国产三级人妇 | 久久国产精品电影 | 欧洲av一区二区 | 狠狠噜噜 | 亚洲精品美女在线观看 | 国产毛茸茸 | 在线视频 中文字幕 | 国产a一区二区三区 | 国产一级片a | 欧美人与性动交α欧美片 | 男人的天堂色偷偷 | 国产一级久久久久毛片精品 |