----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
Java泛型由来的动机
理解Java泛型最简单的方法是把它看成一种便捷语法,能节省你某些Java类型转换(casting)上的操作:
2 |
Apple apple = box.get( 0 ); |
上面的代码自身已表达的很清楚:box是一个装有Apple对象的List。get方法返回一个Apple对象实例,这个过程不需要进行类型转换。没有泛型,上面的代码需要写成这样:
2 |
Apple apple = (Apple) box.get( 0 ); |
很明显,泛型的主要好处就是让编译器保留参数的类型信息,执行类型检查,执行类型转换操作:编译器保证了这些类型转换的绝对无误。
我们在联系集合时,经常会有这样的错误:
--------------------配置: <默认>--------------------
注意: D:\TDDOWNLOAD\javawork\java集合\Collection和Iteraror接口\TestIterator.java 使用了未经检查或不安全的操作。
注意: 要了解详细信息,请使用 -Xlint:unchecked 重新编译。
----------------------------------------------------------------------------------------------------------------------------------
这就是编译器提醒我们执行类型检查,否则box 编译就变成Object类型,需要强制转换。
现在我们来一段代码加深理解:泛型类的声明:
public class Apple<T>//定义Apple类型时使用泛型声明
{
private T info;//使用T类型形参定义属性
private Apple()
{
}
public Apple(T info)//使T类型形参来定义方法
{
this.info=info;
}
public void setInfo(T info)
{
this.info=info;
}
public T getInfo()
{
return this.info;
}
public static void main(String[] args)
{
//传给T形参的是String实际类型,所以构造器的参数只能是String
Apple<String> a1=new Apple<String>("苹果");
System.out.println(a1.getInfo());
//传给T形参的是Double实际类型,所以构造器的参数只能是Double
Apple<Double> a2=new Apple<Double>(5.67);
System.out.println(a2.getInfo());
}
}
上面是泛型类的声明。
当然泛型的构成还有接口和方法的声明,和泛型构造器的声明
泛型接口
一个接口可以有多个类型变量,类型变量有<>括起来,放在接口名的后面
|
public interface List<T> extends Collection<T>
{
|
.....
}
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
分享到:
相关推荐
NULL 博文链接:https://840198532-qq-com.iteye.com/blog/1490705
NULL 博文链接:https://840198532-qq-com.iteye.com/blog/1491352
day02_Collection、泛型 day03_List、Set、数据结构、Collections day04_Map,斗地主案例 day05_异常,线程 day06_线程、同步 day07_等待与唤醒案例、线程池、Lambda表达式 day08_File类、递归 day09_字节流、字符流...
泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是...
JAVA设计模式--程序设计--反射--注解--泛型
java --泛型编程 课件 同时可结合《java 程序员教程》这本书
个人制作且上课使用的课件,希望对大家初步了解泛型相关内容有一定的帮助。个人制作且上课使用的课件,希望对大家初步了解泛型相关内容有一定的帮助。
泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是...
14-泛型
03-Java集合-泛型面试题(24题)-新增
java基础-泛型通配符
GP-泛型算法通用原则
SSH笔记-泛型依赖注入,当继承类完毕之后,根据泛型依赖注入的特性,被继承类会参照继承类所引用了的其他的引用关系自动建立对应引用关系,这就是泛型依赖注入
Java 基础(4_8) - 泛型机制详解
后端研究-泛型机制在Apla-Java程序生成系统中实现的方法研究.pdf
C++Primer第11章-泛型算法-课后习题答案[收集].pdf
包含代码,实验案例,课件(泛型的基本概念、泛型的定义和类型参数、泛型类和泛型接口,泛型委托和泛型事件)
C语言在泛型这一块确实不行,哈,但我就是喜欢泛型啊。 用宏定义做的C语言泛型,提供一个思路给大家。
本程序利用c语言来实现c++中STL的功能,也就是利用C语言来实现泛型的数据结构,这个文件中只包含四种数据结构,stack,queue,list,vector
SSH2_自动生成数据库框架整合-泛型引用 数据库是用的是mysql 里面有一个错误 我就先不提示 看看大家能否发现是什么错误,数据库表是不需要建立的 当服务器开启的时候就开始创建表