泛型(Generics)是一种编程抽象机制,它使得我们能够写出更加通用、可重用的代码。
在传统的编程中,我们通常需要对不同类型的变量进行不同的操作,比如我们可以定义一个函数用于计算两个 int 类型的数的和,但如果我们要计算两个 double 类型的数的和,我们就需要定义另外一个函数。这就造成了大量的代码重复,不方便维护和扩展。举例来说:
泛型(Generics)是一种编程抽象机制,它使得我们能够写出更加通用、可重用的代码。
在传统的编程中,我们通常需要对不同类型的变量进行不同的操作,比如我们可以定义一个函数用于计算两个 int 类型的数的和,但如果我们要计算两个 double 类型的数的和,我们就需要定义另外一个函数。这就造成了大量的代码重复,不方便维护和扩展。举例来说:
public class Calculator {
public static int add(int a, int b) {
return a + b;
}
public static double add(double a, double b) {
return a + b;
}
}
如果使用泛型,我们就可以解决这个问题。泛型可以帮助我们抽象出一些通用的操作,在使用时再指定具体的类型。这样就避免了代码重复,使得代码更加简洁和易于维护。举例来说:
public class Calculator<T extends Number> {
public T add(T a, T b) {
return a.doubleValue() + b.doubleValue();
}
}
这个泛型类定义了一个 add 函数,可以计算任意类型的数字的和,只需要在使用时指定具体的类型即可。比如:
Calculator<Integer> intCalculator = new Calculator<>();
int sum = intCalculator.add(1, 2);
Calculator<Double> doubleCalculator = new Calculator<>();
double result = doubleCalculator.add(1.0, 2.0);
在这个例子中,我们定义了一个泛型类 Calculator,它的类型参数 T 是一个 extends Number 的类型。这个类型约束确保了 T 必须是数字类型。add 函数接受两个类型为 T 的参数,并返回一个类型为 T 的结果。在使用时,我们可以分别用 Integer 和 Double 类型实例化这个泛型类,并调用 add 函数来计算它们的和。