admin 管理员组

文章数量: 887021


2023年12月23日发(作者:数据库的认识与了解)

java 泛型用法实例

Java 泛型是一种将类型参数化的方法,通过它可以在编译时检测到类型不匹配的错误。泛型的核心思想是参数化类型,实现了代码的重用性和类型的安全性。下面我将通过一些实例来介绍 Java 泛型的用法。

1. 泛型类

泛型类是指在定义类时使用类型参数来代替真实类型。例如,我们可以定义如下的一个泛型类来表示一个有序对(Ordered Pair):

```

public class OrderedPair {

private K key;

private V value;

public OrderedPair(K key, V value) {

= key;

= value;

}

public K getKey() {

return key;

}

public V getValue() {

return value;

}

}

```

在上面的例子中,`K` 和 `V` 是类型参数,用来代替真实的类型。在使用该类时,我们可以指定实际的类型来创建对象:

```

OrderedPair p1 = new OrderedPair

String>(1, "One");

OrderedPair p2 = new OrderedPair

Integer>("Two", 2);

```

2. 泛型方法

泛型方法是指在定义方法时使用类型参数来代替方法中的参数类型。例如,我们可以定义如下的一个泛型方法来交换数组中的两个元素:

```

public static void swap(T[] array, int i, int j) {

T temp = array[i];

array[i] = array[j];

array[j] = temp;

}

```

在上面的例子中,`` 表示该方法是一个泛型方法,类型参数 `T` 用来代替真实的类型。在使用该方法时,我们可以指定实际的类型参数:

```

Integer[] array = {1, 2, 3};

swap(array, 0, 2);

```

3. 通配符

通配符是指在定义泛型时使用 `?` 来代替类型参数,表示可以匹配任意类型。例如,我们可以使用通配符来定义一个方法,该方法可以打印任意类型的数组:

```

public static void printArray(Array array) {

for (Object obj : array) {

n(obj);

}

}

```

在上面的例子中,`? extends Object` 表示可以匹配任意类型,但是必须是 `Object` 的子类。在使用该方法时,我们可以传递任意类型的数组:

```

String[] stringArray = {"One", "Two", "Three"};

Integer[] integerArray = {1, 2, 3};

printArray(stringArray);

printArray(integerArray);

```

通过上面的实例,我们可以看到 Java 泛型的灵活性和便利性,可以轻松地实现参数化类型的定义和使用。同时,泛型也可以提高代码的可读性和类型安全性,减少编译时错误的出现。


本文标签: 类型 泛型 参数 方法