Java 中 泛型的限定
来源:互联网 发布:专业数据库恢复 编辑:程序博客网 时间:2024/06/05 04:44
泛型 一般 出现在集合中,迭代器中 也会出现!
泛型 是为了 提高代码的 安全性。 泛型 确保数据类型的唯一性。
在我们常用的容器中, 越是 单一 约好处理啊!
泛型的限定:
? 是通配符 指代 任意类型
泛型的限定上限:<? extends E> 接受 E 或者 E 的子类型。
泛型的限定下限:<? super E> 接收 E 或者 E 的父类。
泛型的限定上限 (定义父类 填装子类 类型!)
代码:
package stu.love.v;import java.util.*;//泛型限定上限的应用class Demo12 {public static void main(String[] args) {Collection<Student> c = new ArrayList<Student>();c.add(new Student("zhaosi",23));c.add(new Student("lisi",25));c.add(new Student("wangwu",20)); //TreeSet(Collection<? extends E> c) // class TreeSet<E> //{ //}TreeSet<Person> ts = new TreeSet<Person>(c);Iterator<Person> ite = ts.iterator();while(ite.hasNext()){sop(ite.next());}}public static void sop(Object obj){System.out.println(obj);}}
泛型的限定下限:(一般用于定义 迭代器: 只需定义 父类类型的迭代器,否则 面向具体的话,扩展性和维护性不好!)
代码:
package stu.love.v;import java.util.*;import stu.love.v.Demo11;/*// 子类 特殊的 比较器 Studentclass ComByAge implements Comparator<Student>{public int compare(Student s1,Student s2){int num = new Integer(s1.getAge()).compareTo(new Integer(s2.getAge()));if(num==0)return s1.getName().compareTo(s2.getName());return num;}}// 子类 特殊的 比较器 Teacherclass ComByAge2 implements Comparator<Teacher>{public int compare(Teacher s1,Teacher s2){int num = new Integer(s1.getAge()).compareTo(new Integer(s2.getAge()));if(num==0)return s1.getName().compareTo(s2.getName());return num;}}*///父类的比较器 <Person>class CompareByAge implements Comparator<Person>{public int compare(Person s1,Person s2){int num = new Integer(s1.getAge()).compareTo(new Integer(s2.getAge()));if(num==0)return s1.getName().compareTo(s2.getName());return num;}}class Demo13 {//TreeSet<E>(Comparator<? super E> comparator) 定义比较器时,可以是E类型,还可以是E的父类型,E在创建集合对象时确定public static void main(String[] args) {TreeSet<Student> t1 = new TreeSet<Student>(new CompareByAge());t1.add(new Student("zhaosi",23));t1.add(new Student("lisi",25));t1.add(new Student("wangwu",20));TreeSet<Teacher> t2 = new TreeSet<Teacher>(new CompareByAge());t2.add(new Teacher("wang",38));t2.add(new Teacher("lilaoshi",48));t2.add(new Teacher("zhanglaoshi",58));}}
1 0
- Java 中 泛型的限定
- Java 泛型的限定
- Java 泛型的限定
- JAVA 泛型限定
- Java 泛型限定
- Java基础 泛型限定的应用
- java 泛型变量的限定
- java 泛型类型限定
- JAVA-泛型的使用以及泛型限定
- 通配符,泛型的限定
- Java泛型之泛型限定
- java 泛型限定(上限)
- java 泛型限定(下限)
- Java 泛型中的类型限定
- Java泛型解析(02):通配符限定
- java泛型约束和限定
- Java基础 通配符?+泛型限定
- java集合框架(泛型限定)
- poj 1470 Closest Common Ancestors(简单的LCA算法)
- linux下环境变量操作API
- 动态函数调用实现下列操作,输入2个数以及操作符计算结果。@求最大公约数 $求最小公倍数 -求差 +求和
- Codeforces Beta Round #17 D题 福大核武 景润后人!!!
- 大数加法
- Java 中 泛型的限定
- C程序设计语言(K&R)第二章学习笔记
- leetcode3题解 Max Points on a line
- 空格替换
- 水晶报表之自定义函数
- 简单字符串排序
- iOS地图和定位
- poj3281Dining网络流-最大流
- 字符串替换