Java泛型编程01-泛型类
首先来了解一下什么是泛型类?
泛型类:是有一个或者多个类型参数的类。
我们来编写一段示例代码来看:
package com.ch06.ch601;
public class Entry<K, V> {
// 被用作实例变量的类型
private K key;
private V value;
// 被用作方法的参数类型
public Entry(K key, V value) {
this.key = key;
this.value = value;
}
// 被用作方法的返回值类型
public K getKey() {
return key;
}
// 被用作方法的返回值类型
public V getValue() {
return value;
}
}
在这里我们可以看到,在类名后面的尖括号中指定了类型参数K和V。
在上面我们可以看到这些类型参数被用在了:
- 实例变量的类型
- 方法的参数类型
- 返回值的类型
接着我们可以来实例化一个泛型类
Entry<String, Integer> entry = new Entry<>("ryh", 13);
// 等同于 new Entry<String, Integer>("ryh", 13);
这样的话就是一个包含方法 String getKey() 和方法 Integer getValue() 的普通类。
注意:我们的基本数据类型参数是不可以用作类的实例化的。例如 Entry<String, int> 这样在java中是无效的。
在上面构造泛型类对象时,我们还注意到可以在构造函数中省略类型的参数。它与 new Entry<String, Integer>(“ryh”, 13); 是同样的。因为构造函数的类型参数是可以自动推算的。