Java中可以通过在方法签名中使用泛型类型参数来定义泛型方法。泛型方法可以在调用时指定不同类型的参数,从而可以在不同场景下重用相同的代码。
下面是一个示例泛型方法,用于比较两个值的大小:
public class MyClass {
// 定义一个泛型方法
public <T extends Comparable<T>> boolean compare(T a, T b) {
return a.compareTo(b) > 0;
}
}
在这个方法中,>表示这是一个泛型方法,T是一个类型参数,它必须是实现了Comparable接口的类的子类。
在方法体中,a.compareTo(b)比较了两个类型为T的参数的大小,如果第一个参数大于第二个参数,则返回true,否则返回false。
以下是如何调用上述泛型方法的示例:
MyClass obj = new MyClass();
boolean result1 = obj.compare(10, 5); // 调用时T被推断为Integer类型
boolean result2 = obj.compare("hello", "world"); // 调用时T被推断为String类型
在这个示例中,compare方法被调用了两次,第一次比较了两个整数,第二次比较了两个字符串。由于泛型方法中使用了类型参数T,因此可以根据方法调用时传递的参数类型自动确定T的具体类型,从而实现了代码的重用。
上一篇
java创建空数组下一篇
java获取当前线程
2023-12-09

2023-12-09

2023-12-09

2023-12-09

2023-12-09

2023-12-09

2023-12-09

2023-12-09

2023-12-09

2023-12-09

2023-12-09

2023-12-09

2023-12-09

2023-12-09

2023-12-09