建立泛型类及泛型方法,并进行调用。
时间: 2023-07-08 12:23:21 浏览: 91
好的,我可以帮您解答这个问题。
首先,我们来看一下泛型类的定义及调用。泛型类是指在定义类时,使用类型参数来定义类的属性、方法等成员,以便在实例化对象时指定实际类型。下面是一个简单的泛型类的定义:
```java
public class GenericClass<T> {
private T data;
public GenericClass(T data) {
this.data = data;
}
public T getData() {
return data;
}
}
```
在这个类中,我们使用类型参数 T 来定义了类的属性和构造方法参数。在类的构造方法中,我们使用了 T 类型的参数来接收传入的数据,并将其赋值给类的属性 data。同时,我们还定义了一个方法 getData,用于返回类的属性 data。
接下来,我们可以在其他类中实例化这个泛型类,并指定具体的类型参数。例如:
```java
GenericClass<String> gc1 = new GenericClass<>("Hello");
String data1 = gc1.getData(); // data1 的值为 "Hello"
GenericClass<Integer> gc2 = new GenericClass<>(123);
int data2 = gc2.getData(); // data2 的值为 123
```
在这段代码中,我们分别实例化了两个 GenericClass 对象,一个指定了类型参数为 String,另一个指定了类型参数为 Integer。然后,我们分别调用了这两个对象的 getData 方法,得到了不同类型的数据。
除了泛型类,Java 还支持泛型方法。泛型方法是指在方法中使用类型参数来定义方法的参数类型、返回值类型等,从而让方法可以接受不同类型的参数和返回不同类型的值。下面是一个简单的泛型方法的定义:
```java
public static <T> T getFirstElement(List<T> list) {
if (list == null || list.isEmpty()) {
return null;
}
return list.get(0);
}
```
在这个方法中,我们使用类型参数 T 来定义了方法的参数类型和返回值类型。方法的参数是一个 List<T> 类型的列表,方法的返回值是一个 T 类型的值。在方法的实现中,我们首先判断传入的列表是否为空,如果为空则返回 null;否则,我们取出列表的第一个元素并返回。
接下来,我们可以在其他地方调用这个泛型方法,传入不同类型的列表参数,得到不同类型的返回值。例如:
```java
List<String> list1 = Arrays.asList("A", "B", "C");
String firstElement1 = getFirstElement(list1); // firstElement1 的值为 "A"
List<Integer> list2 = Arrays.asList(1, 2, 3);
int firstElement2 = getFirstElement(list2); // firstElement2 的值为 1
```
在这段代码中,我们分别传入了一个字符串列表和一个整数列表,然后调用了 getFirstElement 方法,得到了不同类型的返回值。
希望上述解答能够帮到您!
阅读全文