java泛型的知识总结
来源:互联网 发布:匡恩网络不发工资 编辑:程序博客网 时间:2024/05/17 07:24
java泛型知识:
泛型同注解一样,也分为定义和使用,比如JDK中集合框架对泛型进行了定义,而我们使用集合框架
时,就直接遵循定义进行了使用。
泛型的定义:
1、在类中进行定义
public class T4<E> {
private E e;
public void setE(E e){
this.e=e;
}
public E getE(){
return this.e;
}
}
也就是如以上的形式,在定义类的时候,定义该类中可能需要的泛型类
2、在方法上定义:
public class TT{
public <E> void test(E e){
}
}
3、定义泛型时加上该泛型的约束,默认的泛型实际上是表示继承Object类,可以在
定义时指定需要继承的类或实现的接口:
class TTT<E extends Map>{
}
这样在使用TTT的泛型时,该泛型必须实现Map接口。
两种定义方式的不同,也就是该泛型的使用范围不同,在类上定义的泛型,则在整个类中都可
使用;在方法上定义的泛型,只能在该方法中使用。
定义泛型时,不能在定义的类中实例化该泛型,例如,下面的用法就是错的:
class TTT<E>{
public void test(){
E e=new E();
}
}
编译器会提示“不能实例化类型 E”,这个的具体原因我不清楚,如果一定要实例化该泛型,
可以采取强制转换的方式,例如:
class TTT<E>{
public void test(){
E e=(E)new Object();
}
}
这个应该容易理解,因为没有显示指明类型,默认就是Object的子类。
泛型的使用:
使用泛型就比较容易了,记得当初学java集合框架的时候,很容易就理解了如何使用加上了
泛型的集合框架。不过作为知识的完备性,有一点还是要说一下,就是在使用泛型时,可以
使用这种语法来定义一个泛型引用:
public static void main(String[] args) {
T4<? extends List> tt=null;
tt=new T4<ArrayList>();
tt=new T4<LinkedList>();
}
这样就可以让tt这个引用指向任何实现了List接口的泛型类。不过这样做个人认为不是很合适,
本身泛型在使用时就是为了指明具体的类型,用这种方式使用,反而又模糊了使用的具体类型,
如果使用set(E)时,编译器会报错,因为它不知道具体要把一个什么类型set进去。
也就是说定义泛型时应当越抽象越好,而使用泛型时,则应越具体越好。
对泛型的总结:
泛型编程就是对处理的数据进行抽象,使得处理的算法具有普适性,也算是比较高级的编程了。
对泛型的定义,我还没有在开发中实践过,以后有了实践经验,再来总结。
- java泛型的知识总结
- java泛型知识总结
- java泛型知识总结
- java的一些知识总结
- 对Java Generic相关知识的总结
- java.io方面的知识总结
- java现在所知道的知识总结
- Java集合框架的知识总结
- Java集合框架的知识总结
- Java集合框架的知识总结
- Java集合框架的知识总结
- 总结与JAVA需要了解的知识
- Java集合框架的知识总结
- 关于java的总结,和知识框架
- Java集合框架的知识总结
- Java集合框架的知识总结
- 面试Java需要的知识总结
- Java JPA知识的理解与总结
- windows8 下载地址
- 微软在好莱坞输给了Linux
- 位图排序算法(一),java版
- PHP操作数据库
- 开通纪念
- java泛型的知识总结
- 深入大规模芯片设计全过程
- Jquery中的Cookie插件
- 中国芯片设计三道门槛拦路 人才瓶颈最关键
- Android 电话窃听器
- Android debug log 查看设置.
- 【博客搬家】博客搬家了,请大家访问我的个人网站 http://www.raychase.net/
- hadoop-*-streaming.jar源码浅析
- Android原理揭秘系列之framework本地方法注册