泛型
一、泛型介绍
- 泛型类:
class 类名<T> { ... }
- 泛型接口:
interface 接口名<T> { ... }
- 泛型方法:
<T> 返回值类型 方法名(参数列表) { ... }
import java.util.ArrayList;
import java.util.List;
/**
* 本文件展示了Java泛型的基本用法,包括泛型类、泛型接口和泛型方法。
*/
public class GenericExample {
/**
* 泛型类示例:Box<T>
* 用于存储任意类型的数据。
*/
public static class Box<T> {
private T item;
public void setItem(T item) {
this.item = item;
}
public T getItem() {
return item;
}
}
/**
* 泛型接口示例:Container<T>
* 定义了一个可以存储和获取元素的容器。
*/
public interface Container<T> {
void add(T item);
T get(int index);
}
/**
* 实现泛型接口的类:StringContainer
* 专门用于存储字符串类型的容器。
*/
public static class StringContainer implements Container<String> {
private List<String> items = new ArrayList<>();
@Override
public void add(String item) {
items.add(item);
}
@Override
public String get(int index) {
return items.get(index);
}
}
/**
* 泛型方法示例:printArray(T[] array)
* 打印任意类型的数组内容。
*/
public static <T> void printArray(T[] array) {
for (T element : array) {
System.out.println(element);
}
}
/**
* 主方法:测试泛型类、接口和方法的功能。
*/
public static void main(String[] args) {
// 测试泛型类 Box<T>
Box<Integer> integerBox = new Box<>();
integerBox.setItem(123);
System.out.println("泛型类 Box<Integer> 存储的值: " + integerBox.getItem());
Box<String> stringBox = new Box<>();
stringBox.setItem("Hello, Generics!");
System.out.println("泛型类 Box<String> 存储的值: " + stringBox.getItem());
// 测试泛型接口 Container<T>
Container<String> container = new StringContainer();
container.add("Item 1");
container.add("Item 2");
System.out.println("泛型接口 Container<String> 获取的值: " + container.get(0));
// 测试泛型方法 printArray(T[] array)
Integer[] intArray = {1, 2, 3};
System.out.println("泛型方法 printArray(Integer[]):");
printArray(intArray);
String[] stringArray = {"A", "B", "C"};
System.out.println("泛型方法 printArray(String[]):");
printArray(stringArray);
}
}