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

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

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

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

泛型的限定上限:
<? 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. adb 调试真机 wait for device 错误解决办法

    起因 真机测试,使用adb安装和卸载应用时,出现wait for device. 解决办法 拔掉USB重新插入即可.

  2. 洛谷——P3939 数颜色(暴力vecotr+二分)

    P3939 数颜色 $vecotr$里二分就是好用,全是$STL$ 颜色数目比较少,可以对每一种颜色弄一个$vector$记录一下,查找$l,r$内颜色数为$x$的兔子数,直接在$G[x]$这个$ve ...

  3. 牛客网NOIP赛前集训营-提高组(第二场)A 方差

    链接:https://www.nowcoder.com/acm/contest/173/A来源:牛客网 题目描述 一个长度为 m 的序列 b[1...m] ,我们定义它的方差为 ,其中  表示序列的平 ...

  4. 02 requests模块

    requests模块 requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库,requests会比urllib更加方便,可以节约我们大 ...

  5. 【MVC】使用笔记

    1,在ASP.NET MVC中,路由机制特别碉堡,直接对应于动作方法.没有必要给每一个动作方法添加视图,当视图返回View时,路由系统会自动寻找指定目录下的视图资源. public ViewResul ...

  6. Haproxy的安装与配置

    一.Haproxy概念 Haproxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.Haproxy特别适用于那些负载特大的web站点,这 ...

  7. spring用到的设计模式

    https://www.cnblogs.com/yuefan/p/3763898.html https://www.cnblogs.com/hwaggLee/p/4510687.html https: ...

  8. Python+selenium登录测试

    我们以登录新浪微博为案例来讲解,首先进入登录页面,输入用户名和密码,点击登录按钮,并且获得用户信息以验证是否登录成功. Web地址:https://login.sina.com.cn/signup/s ...

  9. 动手实操(一):如何用七牛云 API 实现相片地图?

    实操玩家: 在苹果手机上,我们只要打开定位服务,拍照后便能在相簿中找到地图,地图上显示着在各地拍摄的相片.网站上这种显示方式也并不少见,例如 Flickr.即将关闭的 Panoramio 等. 作为地 ...

  10. bzoj 2721[Violet 5]樱花 数论

    [Violet 5]樱花 Time Limit: 5 Sec  Memory Limit: 128 MBSubmit: 671  Solved: 395[Submit][Status][Discuss ...