Java泛型(一) 泛型的概念 基础
来源:互联网 发布:google浏览器 for mac 编辑:程序博客网 时间:2024/05/01 10:02
1.泛型的定义:
所谓泛型,就是变量类型的参数化。
泛型是JDK1.5中一个最重要的特征。通过引入泛型,我们将获得编译时类型的安全和运行时更小的抛出ClassCastException的可能。
在JDK1.5中,你可以声明一个集合将接收/返回的对象的类型。
使用泛型时如果不指明参数类型,即泛型类没有参数化,会提示警告,此时类型为Object。
2、为什么使用泛型:
在1.5之后我们有了拆箱装箱的概念,就是说你定义一个Object的类型,最后放进去一个Int的值,等到一系列的处理后,我们还需要将Object'的类型转换会Int,有的时候你放进去了一个String,再强转的时候会出问题,而你又不愿意定义这个变量为Int'的类型,因为有些时候它的确可以存放String的,而你又不太愿意在多定义。
以方法参数的泛型为例: call(Object obj) 你可以传String Int就比如刚才的强转问题,但是你如果定义call(String str)等你要用到Int的时候还要重新定义,需要重载方法,写N个有不同参数类型的方法,很麻烦
综上所述: 泛型就是为了解决这种隐藏数据转换带来的 运行时错误和简化方法的重载而出来的一种鬼 ORZ.
3、泛型的分类(楼主自己分的):
构造方法的泛型、接口泛型、泛型方法、泛型数组、多个泛型、通配符等。
3、泛型的分类(楼主自己分的):
构造方法的泛型、接口泛型、泛型方法、泛型数组、多个泛型、通配符等。
package com.berwin.java.generic;import java.security.PrivateKey;/** * Created by yangbowen-002 on 2016/2/25. */public class GenericDemo1 { public static void main (String[] args){ Point p = new Point(); p.setX(10); p.setY(10); int px = (Integer) p.getX(); int py = (Integer)p.getY(); System.out.println("X=" + px + " y = "+py); // 泛型的定义一定要在定义类型的时候确定好具体类型,这里指的是PointA<String> PointA<String> pa = new PointA<String>(); pa.setX("1234");// 如果直接上1234 认为是integer,编译报错的 pa.setY("5678"); System.out.println("X=" + pa.getX() + " y = "+pa.getY()); Point p1 = new Point(); p1.setX(10.1f); p1.setY(10.2f); int p1x = (Integer) p1.getX(); //执行到这里的时候会报错,因为float不能强制转integer,但是成员变量X Y是Object的, // 所以变异的时候不会报错,但是执行就会出问题,运用了泛型 就可以解决,在变异阶段就查出原因了 int p1y = (Integer)p1.getY(); System.out.println("X1=" + p1x + " y1 = "+p1y); }}class Point{ private Object x; private Object y; public Object getX() { return x; } public void setX(Object x) { this.x = x; } public Object getY() { return y; } public void setY(Object y) { this.y = y; }}class PointA<T>{ private T x; private T y; public T getX() { return x; } public void setX(T x) { this.x = x; } public T getY() { return y; } public void setY(T y) { this.y = y; }}
0 0
- Java泛型(一) 泛型的概念 基础
- Java多线程基础一(基础概念)
- JAVA基础概念的一些梳理(一)
- Java常用基础概念整理(一)
- Java多线程(一)- 基础概念
- java多线程系列(一)基础概念
- Java基础(一)概念术语
- Java多线程一:基础概念
- java 泛型基础概念
- 基础学习--表的概念(一)
- Object-c的基础概念(一)
- Object-c的基础概念(一)
- 数据库的一些基础概念(一)
- (一)内核相关的基础概念
- JAVA基础(一)·数组(Array)概念(一)
- 黑马程序员——Java基础:面向对象一些概念的区分(一)
- JAVA基础(四)接口的概念
- cocos2dx基础概念(一)
- 文本挖掘--将分词之后的文档转化为结构化的数据
- 彻底解决错误Duplicate files copied in APK xxx/xxx/xxx/LICENSE.txt
- jsp中使用s:if比较时间
- 类属性复制实现
- View设置背景渐变色(shape,gradient)
- Java泛型(一) 泛型的概念 基础
- Android仿美团团购详情页下拉图片放大效果,简单可直接用在项目中
- cf 540 C Ice Cave
- 关于delete和deletelater的问题
- Java并发编程:线程池的使用
- Objective-C 12 类别Category
- iOS集成极光推送,绕过一些坑
- Storm+Kafka集成
- UITaableView的section间隔设置