java学习笔记之泛型
2016-11-21 15:25
190 查看
“泛型”这个术语的意思就是:“使用与许多许多的类型”。泛型在编程语言中出现时,其最初的目的是希望类或方法能够具备最广泛的表达能力。如何做到这一点呢,正是通过解耦类或方法与所使用的类型之间的约束。
在你创建参数化类型的一个实例时,编译器会为你负责转型操作并保证类型的正确性。看一个例子:
在使用泛型类时,虽然传入了不同的泛型实参,但并没有真正意义上生成不同的类型,传入不同泛型实参的泛型类在内存上只有一个,即还是原来的最基本的类型(本实例中为Cat),当然,在逻辑上我们可以理解成多个不同的泛型类型。
在编译过程中,对于正确检验泛型结果后,会将泛型的相关信息输出,也就是说,成功编译过后的class文件中是不包含任何泛型信息的。泛型信息不会进入到运行时阶段。
对此总结成一句话:泛型类型在逻辑上看以看成是多个不同的类型,实际上都是相同的基本类型。
好处就是我们不必一开始就指定具体的类型而在使用时再用实际的类型替换此类型的参数,这大大增加了代码的复用性。
在你创建参数化类型的一个实例时,编译器会为你负责转型操作并保证类型的正确性。看一个例子:
public class Cat<T> { private T str; public Cat() { } public Cat(T str) { this.str = str; } public T getstr() { return str; } public static void main(String[] args) { Cat<String> name = new Cat<String>("corn"); Cat<Integer> age = new Cat<Integer>(712); System.out.println("name class:" + name.getClass()); System.out.println("age class:" + age.getClass()); System.out.println(name.getClass() == age.getClass()); } } /* output: name class:class com.ys.Cat age class:class com.ys.Cat true */
在使用泛型类时,虽然传入了不同的泛型实参,但并没有真正意义上生成不同的类型,传入不同泛型实参的泛型类在内存上只有一个,即还是原来的最基本的类型(本实例中为Cat),当然,在逻辑上我们可以理解成多个不同的泛型类型。
在编译过程中,对于正确检验泛型结果后,会将泛型的相关信息输出,也就是说,成功编译过后的class文件中是不包含任何泛型信息的。泛型信息不会进入到运行时阶段。
对此总结成一句话:泛型类型在逻辑上看以看成是多个不同的类型,实际上都是相同的基本类型。
好处就是我们不必一开始就指定具体的类型而在使用时再用实际的类型替换此类型的参数,这大大增加了代码的复用性。
相关文章推荐
- Java 学习笔记:泛型(二)
- Java学习笔记五 Eclipse工具、JDT、泛型
- Java学习笔记43:Java泛型
- 黑马程序员-java学习笔记-泛型
- Java学习笔记————泛型程序设计
- 黑马程序员——java 泛型学习笔记
- java学习笔记---第13章泛型程序设计
- java学习笔记08--泛型
- java学习笔记之泛型
- 黑马程序员—15—java基础:有关泛型的学习笔记和学习心得体会
- Java基础学习笔记(九)Comparable接口、Map接口、泛型
- 黑马程序员________Java集合Map及其JDK1.5新特性泛型机制的学习笔记
- Java 泛型学习笔记(二)
- Java 泛型学习笔记(一)
- Java Generic 泛型 - Java 学习笔记 (24)
- Java基础学习笔记(九)Comparable接口、Map接口、泛型
- java泛型的学习笔记[2]—实际使用
- java 泛型学习笔记
- java学习笔记之泛型
- JAVA学习笔记-------泛型,约束