黑马程序员-泛型理解
2015-06-15 14:18
417 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
出现原因:JDK1.5版本以后出现的新特性,用于解决安全问题,是一个安全机制
好处:
1.将运行时出现的ClassCastException,转移到了编译时期,就是为了方便我们解决问题,让程序运行时出现的问题减少,
2.重要的是:避免的强制类型转换的麻烦
泛型的格式 (通常在集合框架里面用得比较多一点)
用一个<>当中包含一个我们指定的数据类。如ArrayList<String>
<>就是用来接收数据类型,就类比函数传参数,
注意:只能传递引用数据类型
java用到的泛型对象我们可以到API文档中具体查看;
什么时候定义泛型呢?
当我们类当中我们要操作的数据类型不确定的时候。
早期我们定义一个Object来完成扩展
现在定义泛型来扩展
泛型类定义的泛型,在整个类中就有效,如果类当中的方法被调用,那么泛型类被定义
明确要操作的对象以后,那么我们所要操作的类型也就固定了。如何解决这个问题呢?
答:为了让不同的方法可以操纵不同的类型,而去我们的类型还不确定,那么我们可以把泛型定义咋
方法上面,
public <T> void Show(T tt);//泛型方法的定义方式
public static <T> void method( M mm); //泛型的静态方法
特殊之处:静态方法不可以访问类上定义的泛型,
Java能够定义泛型类。我们能不能自己定义呢?
出现原因:JDK1.5版本以后出现的新特性,用于解决安全问题,是一个安全机制
好处:
1.将运行时出现的ClassCastException,转移到了编译时期,就是为了方便我们解决问题,让程序运行时出现的问题减少,
2.重要的是:避免的强制类型转换的麻烦
泛型的格式 (通常在集合框架里面用得比较多一点)
用一个<>当中包含一个我们指定的数据类。如ArrayList<String>
<>就是用来接收数据类型,就类比函数传参数,
注意:只能传递引用数据类型
java用到的泛型对象我们可以到API文档中具体查看;
什么时候定义泛型呢?
当我们类当中我们要操作的数据类型不确定的时候。
早期我们定义一个Object来完成扩展
现在定义泛型来扩展
泛型类定义的泛型,在整个类中就有效,如果类当中的方法被调用,那么泛型类被定义
明确要操作的对象以后,那么我们所要操作的类型也就固定了。如何解决这个问题呢?
答:为了让不同的方法可以操纵不同的类型,而去我们的类型还不确定,那么我们可以把泛型定义咋
方法上面,
public <T> void Show(T tt);//泛型方法的定义方式
public static <T> void method( M mm); //泛型的静态方法
特殊之处:静态方法不可以访问类上定义的泛型,
Java能够定义泛型类。我们能不能自己定义呢?
package com.text; public class zhulang { /** *自己定义的泛型类。 * @param args */ public static void main(String[] args) { //泛型类明确了存储的内容只能在里面存储不同的对象 Mygenerosity<Tool> my = new Mygenerosity<Tool>(); my.setObject(new Tool()); Tool t = (Tool)my.getObject(); //调用泛型方法 my.Show("泛型方法"); //调用静态的方法 Mygenerosity.method("静态方法"); } } class Tool { @Override public int hashCode() { // TODO Auto-generated method stub return 88; } } /** * 自己定义一个泛型 * @param <ZZ> */ class Mygenerosity<ZZ> { private ZZ zz; public void setObject(ZZ zz) { this.zz = zz; } public ZZ getObject() { return this.zz; } public static <M> void method(M mm) { System.err.println("泛型的静态方法"); } //泛型方法 public <T> void Show(T t) { System.out.println("Shwo:泛型方法"+t); } public <Q> void print(Q q) { System.out.println("print:泛型方法"+q); } }
相关文章推荐
- 黑马程序员-File类+递归的简单应用
- 黑马程序员-IO(二)
- 黑马程序员- 正则表达式
- 漫谈程序员系列:伤心小箭,你中了几枝
- 黑马程序员-类加载机制和反射
- 黑马程序员-面向对象
- java软件工程师面试感受
- 代码是程序员的朋友,虽然没有热情,但是非常忠实。
- php面试题一道(计算一个十进制数转二进制后其中‘1’的个数)
- 程序员层级---程序员的10层楼
- 黑马程序员——基础知识总结_内部类
- 微软100题(81)百度面试题_大数据处理
- 黑马程序员__java基础__多线程
- 老板的中心是客户,重心是服务,是行业思维;员工的中心是任务,重心是专业,是职业思维;
- 给90后程序员的一个建议
- 程序员如何写出一份好的文档?
- IT 职业规划
- 入行程序员一个月的感受
- 【剑指offer】面试题六:重建二叉树
- 找工作笔试面试那些事儿(5)---构造函数、析构函数和赋值函数