在2004年末Java推出了Java5,其中提供了对泛型方法和类的支持,也围绕着泛型推出了一下特性,本章将对Java泛型进行综合的概括

1.泛型特性构件pre-Java 5

 1.使用Object表示泛型

    

public class test{
public static void main(String[]args){
test t =new test(); t.write("3");
String val = (String)t.read();
System.out.Println("val");
}
}

当引用类型与Object相容即可

  2.基本类型的包装

   包装类(wrapper class)用于存储当对象构建时所设置的原值,是不可变的,例如int的包装类是Integer

public class test{
public static void main(String[]args){
test t =new test(); t.write(new Integer(3));
  Integer wrapperval = (Integer)m.read();
  int val =wrapperval.inValue();
   System.out.Println(val);
}
}

  3.使用接口类型表示泛型

    实现Comparable接口才能够作为Comparable数组被传递,仅有CompareTo方法宣称实现Comparable接口对象不是Comparable,不具有IS—A关系

      1.如果Compareable数组有两个不相容的对象,将会报出ClassCasrException异常

      2.基本类型不能作为Comparable传递,但是包装类可以,因为实现了Comparable接口

  4.数组类型的兼容

      

class FindMaxDemo
{
public static Comparable findMax(Comparable[] arr){
int maxIndex=0; for(int i=1;i<arr.length;i++){
if(arr[i].compareTo(arr[maxIndex])>0)
maxIndex=1; return arr[maxIndex];
}
/**
*
*/
public static void main(String [] args){
Shape[] sh1 ={
new Circle(2.0),
new Square(3.0)
};
String [] st1 = {"joe"};
System.out.Println(findMax(sh1));
}
}
}

协变数组类型都说明了允许存储的数组类型,如果将一个不兼容的类型插入到数组,将抛出ClasscastException异常

Java泛型成分

  1.简单的泛型类和接口

    将Comparable作为接口

  2.自动装箱拆箱

  3.带有限制的通配符

    在JAVA5中利用通配符来表示参数类型的子类(或超类):Collection<?super extends Class>

  4.泛型static方法

  5.类型限界

    将参数指定必须具有的性质,演变为

  public static<AnyType extends Comparable<AnyType>>

  6.类型擦除

    当一个擦除返回泛型方法被调用时,一些特性被自动插,如果一个泛型类不带类型参数,那么使用原始类

  7.泛型限制

    instance of检测

在综合了泛型带来的特性后,将从泛型集合进行综合

2.泛型类的基本定义

  

    

Java泛型类特性的更多相关文章

  1. Hi java新特性

    java新特性 1995.5.23 java语言 1996 jdk1.0 250个类在API 主要用在桌面型应用程序1997 jdk1.1 500 图形用户界面编程1998 jdk1.2 2300 J ...

  2. 主流的单元测试工具之-JAVA新特性-Annotation 写作者:组长 梁伟龙

    1:什么是Annotation?Annotation,即“@xxx”(如@Before,@After,@Test(timeout=xxx),@ignore),这个单词一般是翻译成元数据,是JAVA的一 ...

  3. Java 三大特性——封装、继承、多态

    一.封装 封装,实际就是把属于同一类事物的共性(包括属性与方法)归到一个类中,以方便使用. 概念:在面向对象程式设计方法中,封装(英语:Encapsulation)是指,一种将抽象性函式接口的实作细节 ...

  4. paip.自定义java 泛型类与泛型方法的实现总结

    paip.自定义java 泛型类与泛型方法的实现总结 ============泛型方法     public static <atiType,retType> retType reduce ...

  5. paip。java 高级特性 类默认方法,匿名方法+多方法连续调用, 常量类型

    paip.java 高级特性 类默认方法,匿名方法+多方法连续调用, 常量类型 作者Attilax 艾龙,  EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http ...

  6. JAVA三大特性之多态

    面向对象的三大特性:封装.继承.多态.从一定角度来看,封装和继承几乎都是为多态而准备的.这是我们最后一个概念,也是最重要的知识点. 多态的定义:指允许不同类的对象对同一消息做出响应.即同一消息可以根据 ...

  7. Java高级特性之泛型

    首先我们先提出两个问题: 什么是泛型? 为什么要使用泛型?我们先来看看第一个问题什么是泛型.如果你对Java三大特性中的多态性理解的比较透彻的话,泛型就比较好理解了.多态性表示一个对象具备多种状态.比 ...

  8. JAVA三大特性之二——继承

    很多人在学习了JAVA以后,都会了解这个概念,而且继承也会在以后的开发中经常用到,但对于JAVA的继承特性,很多人都了解的不够深入,不够完整,当然这其中包括我,所以我就想抽点时间来整理一下JAVA继承 ...

  9. JAVA三大特性之一——封装

    自学java已经有一段时间了,但是感觉对于很多知识点还是有必要总结和整理一下,下面我就来说一下我对JAVA三大特性之一——封装特性的认识和理解. 封装,从字面意思可以看出来,就是包装,也就是把我们写好 ...

随机推荐

  1. LeetCode109 Convert Sorted List to Binary Search Tree

    Given a singly linked list where elements are sorted in ascending order, convert it to a height bala ...

  2. oracle函数 sqrt(x)

    [功能]返回x的平方根 [参数]x数字型表达式 [返回]数字 [示例] select sqrt(64),sqrt(10) from dual; 返回:8 , 3.16227766

  3. @atcoder - Japanese Student Championship 2019 Qualification - E@ Card Collector

    目录 @description@ @solution@ @accepted code@ @details@ @description@ N 个卡片放在 H*W 的方格图上,第 i 张卡片的权值为 Ai ...

  4. @codechef - MXMN@ Maximum and Minimum

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 定义函数 f(G, x, y) 为 G 中点 x 和点 y 之间 ...

  5. React与Vue的相同与不同点

    我们知道JavaScript是世界上最流行的语言之一,React和Vue是JS最流行的两个框架.所以要想前端的开发那么必须掌握好这两个框架. 那么这两个框架有什么不同呢? React 和 Vue 相同 ...

  6. hdu 1708 Fibonacci String

    Fibonacci String Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tot ...

  7. SpringBoot2.0--- 多数据源配置

      在开发的过程中我们可能都会遇到对接公司其他系统等需求,对于外部的系统可以采用接口对接的方式,对于一个公司开发的两个系统,并且知道相关数据库结构的情况下,就可以考虑使用多数据源来解决这个问题.Spr ...

  8. iptables一个包过滤防火墙实例

    环境:redhat9 加载了string time等模块 eth0 接外网──ppp0 eth1 接内网──192.168.0.0/24 #!/bin/sh # modprobe ipt_MASQUE ...

  9. Python--day47--mysql分页性能相关方案

    提高分页性能: 分页的时候,如果是正常的数据全局扫描,分页越大的时候花费的时间越长. 这时候要提高效率的话就不能全局扫描,如下面的例子,扫描索引且从最大或最小页开始扫描.

  10. 在CentOS7上安装ftp服务器用于保存服务端上传的图片。

    1.CentOS卸载vsftpd的方法 如果服务器上已经安装了vsftpd服务,配置出错需要卸载vsftpd服务. 1.1 查找vsftpd服务 [root@localhost /]# rpm -aq ...