Java的泛型-笔记
来源:互联网 发布:淘宝 零食 知乎 编辑:程序博客网 时间:2024/05/22 14:29
Java的泛型
本文参考《Java in a Nutshell, 6th edition》英文版
The syntax <T>
has a special name—it’s called a type parameter, and another name for a generic type is a parameterized type. This should convey the sense that the container type (e.g., List) is parameterized by another type (the payload type).
下面两个例子实现同样的功能:
- 使用泛型
/** * 泛型Generics *//*有两个类如下,要构造两个类的对象,并打印出各自的成员。下面的实现就比较无聊:public class StringFoo { private String x; public StringFoo(String x) { this.x = x; } public void setX(String x) { this.x = x; } public String getX() { return x; }}public class DoubleFoo { private Double x; public DoubleFoo(Double x) { this.x = x; } public void setX(Double x) { this.x = x; } public Double getX() { return x; }}*/class Gen<T> { private T obj; // 定义泛型成员变量 // 构造 public Gen(T ob) { this.obj = ob; } public void setObj(T ob) { this.obj = ob; } public T getObj() { return obj; } public void showType() { System.out.println("T当前实际类型:" + obj.getClass().getName()); }}public class HelloJava { public static void main(String[] args) { // 定义泛型类Gen的一个Integer版本 Gen<Integer> integerObj = new Gen<Integer>(100); integerObj.showType(); Integer i = integerObj.getObj(); System.out.println("value=" + i); System.out.println("------------------"); // 定义泛型类Gen的一个String版本 Gen<String> strObj = new Gen<String>("Hi,java!"); strObj.showType(); String s = strObj.getObj(); System.out.println("value=" + s); }}// 运行结果:T当前实际类型:java.lang.Integervalue=100------------------T当前实际类型:java.lang.Stringvalue=Hi,java!
- 不使用泛型
/** * 普通类,不使用泛型 */class Gen2 { private Object obj; // 定义一个通用类型成员 public Gen2(Object ob) { this.obj = ob; } public void setObj(Object ob) { this.obj = ob; } public Object getObj() { return obj; } public void showTyep() { System.out.println("T当前实际类型:" + obj.getClass().getName()); }}public class HelloJava { public static void main(String[] args) { // 定义类Gen2的一个Integer版本 Gen2 intOb = new Gen2(new Integer(100)); intOb.showTyep(); Integer i = (Integer) intOb.getObj(); System.out.println("value=" + i); System.out.println("------------------"); // 定义类Gen2的一个String版本 Gen2 strOb = new Gen2(new String("Hi,java!")); // 或 Gen2 strOb = new Gen2("Hi,java!"); strOb.showTyep(); String s = (String) strOb.getObj(); System.out.println("value=" + s); }}// 运行结果:T当前实际类型:java.lang.Integervalue=100------------------T当前实际类型:java.lang.Stringvalue=Hi,java!
0 0
- Java的泛型-笔记
- java Class的泛型笔记
- java 泛型笔记
- java泛型笔记
- java 泛型笔记
- java泛型笔记
- java 泛型笔记
- java 泛型笔记
- Java泛型的学习笔记[1]—基础知识
- java泛型的学习笔记[2]—实际使用
- JAVA笔记:泛型及通配符的使用
- Java学习笔记(十二):泛型的使用
- java学习笔记00_泛型的(完成)
- java学习笔记——HashMap的泛型容器
- Java泛型学习笔记
- java泛型学习笔记
- java泛型学习笔记
- JAVA泛型编程笔记
- Android中Activity跳转
- hdu-2078-复习时间
- PCB 的寄生效应(PCB Layout Parasitics)
- JavaWeb之Apache-Tomcat配置
- 支持向量机SVM(二)
- Java的泛型-笔记
- POJ 3071 Football(概率dp)
- Codeforces_round297_A.Vitaliy and Pie
- Hibernate的主键生成策略
- 闲扯
- 取消当点击GridView 的时候出现的那个黄色背景
- itoa的用法
- 19.9元包邮独享专区
- java程序监听不到KeyListener,无法触发