java泛型函数怎么定义

avatar
作者
筋斗云
阅读量:0

在Java中,泛型函数是指可以处理不同类型参数的方法。要定义一个泛型函数,需要在方法名前使用尖括号<>来声明泛型类型参数。这里有一个简单的例子,展示了如何定义一个泛型函数,该函数接受两个参数并返回它们的和:

public class GenericFunctionExample {     public static void main(String[] args) {         int intSum = add(1, 2);         System.out.println("Integer sum: " + intSum);          double doubleSum = add(1.0, 2.0);         System.out.println("Double sum: " + doubleSum);     }      // 定义一个泛型函数,接受两个类型为T的参数,并返回一个类型为T的结果     public static <T extends Number> T add(T num1, T num2) {         // 由于Java泛型擦除,无法直接对T类型的实例进行加法运算,需要将其转换为Number类型后再进行操作         double result = num1.doubleValue() + num2.doubleValue();          // 根据传入的具体类型,将结果转换回相应的类型         if (num1 instanceof Integer) {             return (T) Integer.valueOf((int) result);         } else if (num1 instanceof Double) {             return (T) Double.valueOf(result);         }         // 其他类型...          throw new IllegalArgumentException("Unsupported type");     } } 

在这个例子中,我们定义了一个名为add的泛型函数,它接受两个类型为T的参数,并返回一个类型为T的结果。T是一个泛型类型参数,它被限制为Number类及其子类。这意味着你可以将IntegerDouble等类型的对象传递给这个函数。

请注意,由于Java的类型擦除机制,我们无法直接对泛型类型的实例进行加法运算。因此,我们需要将T类型的实例转换为Number类型,然后再进行加法运算。最后,我们需要根据传入的具体类型将结果转换回相应的类型。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!