java泛型程序
时间: 2023-07-08 13:17:29 浏览: 105
泛型是 Java 中的一种特殊语法,它允许在编译时期对程序中使用的数据类型进行参数化。使用泛型可以增强程序的类型安全性,使代码更加简洁和通用。以下是一些 Java 泛型程序的示例:
1. 泛型类
以下是一个泛型类的示例,它可以存储任何类型的数据:
```
public class Box<T> {
private T data;
public Box(T data) {
this.data = data;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
}
```
在这个示例中,`Box` 类有一个类型参数 `T`,它可以代表任何数据类型。在实例化 `Box` 类时,我们可以指定具体的类型参数,例如:
```
Box<String> stringBox = new Box<>("Hello, world!");
Box<Integer> intBox = new Box<>(42);
```
2. 泛型方法
以下是一个泛型方法的示例,它可以比较两个对象的大小:
```
public static <T extends Comparable<T>> int compare(T a, T b) {
return a.compareTo(b);
}
```
在这个示例中,`compare` 方法有一个类型参数 `T`,它必须是 `Comparable` 接口的子类型。这个方法可以比较任何实现了 `Comparable` 接口的对象,例如:
```
Integer a = 1, b = 2;
int result = compare(a, b); // 返回 -1
```
3. 通配符
以下是一个使用通配符的示例,它可以打印任何类型的列表:
```
public static void printList(List<?> list) {
for (Object o : list) {
System.out.println(o);
}
}
```
在这个示例中,`printList` 方法接受一个 `List` 类型的参数,这个参数是一个通配符类型,表示可以接受任何类型的列表。在方法内部,我们使用 `Object` 类型的变量来遍历这个列表,并打印每个元素的值。例如:
```
List<String> stringList = Arrays.asList("Hello", "world");
List<Integer> intList = Arrays.asList(1, 2, 3);
printList(stringList); // 输出 "Hello" 和 "world"
printList(intList); // 输出 1、2 和 3
```
阅读全文