0%

泛型

泛型程序设计(generic programming)是程序设计语言的一种风格或范式。泛型允许程序员在强类型程序设计语言中编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型。

一、概念

      Java泛型(generics)是JDK5中引入的一个新特性,泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型(只在编译阶段有效)。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。

      在Java早期使用Object类型来接收任意的对象类型,但是在实际的使用中会有类型转换的问题,即:向上转型没有任何问题,但是向下转型时其实隐含了类型转换的问题,这就是程序不安全的原因。也就是因为存在这种安全隐患,所以Java在JDK5以后就提供了泛型来解决这个安全问题。

分类:

泛型类

泛型方法

泛型接口

泛型通配符

二、使用

假定目录为/Users/java

  1. 泛型类:泛型类型用于类的定义中,通过泛型可以完成对一组类的操作对外开放相同的接口。
    • 泛型的类型参数只能是类类型,不能是简单类型。
    • 不能对确切的泛型类型使用instanceof操作。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#Generic.java
public class Generic<T>{
private T key;

public Generic(T key) {
this.key = key;
}

public T getKey(){
return key;
}
}

#MainClass.java
public class MainClass {
public static void main(String[] args) {
Generic<Integer> genericInteger = new Generic<Integer>(123456);
Generic<String> genericString = new Generic<String>("abc");

System.out.println("key的值:" + genericInteger.getKey());
System.out.println("key的值:" + genericString.getKey());

System.out.printf("key的值:%d\n", genericInteger.getKey());
System.out.printf("key的值:%s\n", genericString.getKey());
}
}
  1. 泛型方法

  2. 泛型接口

  3. 泛型通配符

三、参考

  1. 参考一
  2. 参考二