泛型 一般 出如今集合中,迭代器中 也会出现!
     泛型 是为了 提高代码的 安全性。

泛型 确保数据类型的唯一性。

在我们经常使用的容器中。  越是 单一 约优点理啊!  

    泛型的限定:
? 是通配符 指代 随意类型

泛型的限定上限:
<? 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;

/*// 子类 特殊的 比較器  Student
class 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;
}
} // 子类 特殊的 比較器 Teacher
class 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));
} }





Java 中 泛型的限定的更多相关文章

  1. Java中泛型 类型擦除

    转自:Java中泛型是类型擦除的 Java 泛型(Generic)的引入加强了参数类型的安全性,减少了类型的转换,但有一点需要注意:Java 的泛型在编译器有效,在运行期被删除,也就是说所有泛型参数类 ...

  2. Java中泛型使用

    Java中泛型使用 泛型作用: 泛型:集合类添加对象不用强转 反射机制:将泛型固定的类的所有方法和成员全部显示出来 核心代码: ArrayList<Ls> ff=new ArrayList ...

  3. Java中泛型的理解

    Java中的泛型,本质上来说,就是是参数化类型,就是说所操作的数据类型被指定为一个参数,而不是确定的某种类型.这种数据类型可以用在类.接口和方法创建中.即泛型类.泛型接口.泛型方法.这样说可能不够生动 ...

  4. Java中泛型在集合框架中的应用

    泛型是Java中的一个重要概念,上一篇文章我们说过,当元素存入集合时,集合会将元素转换为Object类型存储,当取出时也是按照Object取出的,所以用get方法取出时,我们会进行强制类型转换,并且通 ...

  5. Java 中泛型的全面解析(转)

    Java泛型(generics) 是JDK 5中引入的一个新特性,允许在定义类和接口的时候使用类型参数(type parameter).声明的类型参数在使用时用具体的类型来替换.泛型最主要的应用是在J ...

  6. Java中泛型数组创建总结

    在java中,可以声明一个泛型数组,不能通过直接通过T[] tarr=new T[10]的方式来创建数组,最简单的方式便是通过Array.newInstance(Classtype,int size) ...

  7. Java中泛型Class<T>、T与Class<?>、 Object类和Class类、 object.getClass()和Object.class

    一.区别 单独的T 代表一个类型(表现形式是一个类名而已) ,而 Class<T>代表这个类型所对应的类(又可以称做类实例.类类型.字节码文件), Class<?>表示类型不确 ...

  8. Java中泛型区别以及泛型擦除详解

    一.引言 复习javac的编译过程中的解语法糖的时候看见了泛型擦除中的举例,网上的资料大多比较散各针对性不一,在此做出自己的一些详细且易懂的总结. 二.泛型简介 泛型是JDK 1.5的一项新特性,一种 ...

  9. 用反射来了解Java中泛型的本质

    这篇文章主要通过Class的Method来了解泛型的本质. 先new 两个List,一个不加类型限制,另外一个限制类型为String: ArrayList list = new ArrayList() ...

随机推荐

  1. luogu P1238 走迷宫--DFS模板好(水)题

    题目描述 有一个m*n格的迷宫(表示有m行.n列),其中有可走的也有不可走的,如果用1表示可以走,0表示不可以走,文件读入这m*n个数据和起始点.结束点(起始点和结束点都是用两个数据来描述的,分别表示 ...

  2. LeetCode(18)4Sum

    题目 Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = ...

  3. [WPF自定义控件]使用WindowChrome自定义Window Style

    1. 为什么要自定义Window 对稍微有点规模的桌面软件来说自定义的Window几乎是标配了,一来设计师总是克制不住自己想想软件更个性化,为了UI的和谐修改Window也是必要的:二来多一行的空间可 ...

  4. 详解Python装饰器由浅入深

    装饰器的功能在很多语言中都有,名字也不尽相同,其实它体现的是一种设计模式,强调的是开放封闭原则,更多的用于后期功能升级而不是编写新的代码.装饰器不光能装饰函数,也能装饰其他的对象,比如类,但通常,我们 ...

  5. python014 Python3 迭代器与生成器

    Python3 迭代器与生成器迭代器迭代是Python最强大的功能之一,是访问集合元素的一种方式..迭代器是一个可以记住遍历的位置的对象.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结 ...

  6. Computer (树形DP)

    A school bought the first computer some time ago(so this computer's id is 1). During the recent year ...

  7. html template & import link bug

    html template & import link bug html templates is OK https://caniuse.com/#search=html%20template ...

  8. HDU 4821 字符串hash

    题目大意: 希望找到连续的长为m*l的子串,使得m个l长的子串每一个都不一样,问能找到多少个这样的子串 简单的字符串hash,提前预处理出每一个长度为l的字符串的hash值 #include < ...

  9. 运动员最佳匹配问题(km算法)

    洛谷传送门 带权二分图最大权完美匹配. 裸的km算法. 注意开long long. #include <cstdio> #include <cstring> #include ...

  10. [Usaco2009 Open]工作安排Job

    Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1457  Solved: 687[Submit][Status][Discuss] Descriptio ...