编写一个函数,输出int,short,long,float和double的最大值和最小值
时间: 2024-10-25 10:07:22 浏览: 15
在Java中,你可以创建一个函数来分别找出整型(int)、短整型(short)、长整型(long)、浮点型(float)和双精度浮点型(double)的最大值和最小值。下面是一个简单的示例:
```java
public class Main {
public static void main(String[] args) {
findMinMaxValues();
}
// 函数定义,接受数据类型作为参数,并打印最大值和最小值
public static <T extends Number> void findMinMaxValues(Class<T> dataType) {
try {
T max = dataType.getEnumConstants()[0].equals(dataType) ? (T) Double.MAX_VALUE : dataType.getMethod("MAX_VALUE").invoke(null);
T min = dataType.getEnumConstants()[0].equals(dataType) ? (T) Double.MIN_VALUE : dataType.getMethod("MIN_VALUE").invoke(null);
System.out.printf("%s 的最大值: %s%n", dataType.getSimpleName(), max);
System.out.printf("%s 的最小值: %s%n", dataType.getSimpleName(), min);
} catch (Exception e) {
System.err.println("无法获取" + dataType.getName() + "的边界值");
e.printStackTrace();
}
}
}
```
这个`findMinMaxValues`函数使用泛型 `<T extends Number>` 来处理所有Number类型的实例。它首先检查数据类型是否为枚举类型,因为枚举类型没有静态MAX_VALUE/MIN_VALUE方法。然后,通过反射调用这些常量方法来获取最大值和最小值。
注意:`Class<T>.getEnumConstants()`只适用于枚举类型,其他如int、long等将抛出异常。在实际应用中,你可能需要更复杂的方式来处理非枚举的数值类型。
阅读全文