泛型对象 long 类型变成了 double
时间: 2023-11-06 10:04:02 浏览: 27
将一个泛型对象从 long 类型变成 double 类型需要进行强制类型转换。可以使用强制类型转换符 `(double)` 将 long 类型的泛型对象转换成 double 类型,如下所示:
```java
long num = 100L;
Object obj = num;
double d = (double) obj; // 将 obj 从 long 类型转换成 double 类型
System.out.println(d); // 输出:100.0
```
在强制类型转换时需要注意,如果 long 类型的泛型对象 obj 存储的值超出了 double 类型的范围,那么转换后的结果会出现精度损失。在这种情况下,可以考虑使用 BigDecimal 类型来避免精度损失。
相关问题
return num.doublevalue();解释
`num.doubleValue()`是Java中的方法,它是将`num`对象转换为`double`类型的基本类型值,并返回该值,即将一个对象类型的数据转换为基本数据类型的数据。
在这里`num`是一个泛型类型的参数,`T`可以是任何类型,而`doubleValue()`方法是Java内置的方法,可以转换Java中很多的数字类型为double类型,如Float、Integer、Long等。
因此,`return num.doubleValue();`表示将`num`对象转换为`double`类型,并将该值作为方法的返回值。
编写一个Java程序,用泛型技术定义一个打印类,该类可以打印8种基本数据类型。
下面是一个使用泛型技术定义的打印类,可以打印8种基本数据类型:
```java
public class PrintUtil<T> {
public void print(T value) {
System.out.println(value);
}
public static void main(String[] args) {
PrintUtil<Integer> intPrinter = new PrintUtil<>();
intPrinter.print(10);
PrintUtil<Long> longPrinter = new PrintUtil<>();
longPrinter.print(100L);
PrintUtil<Double> doublePrinter = new PrintUtil<>();
doublePrinter.print(3.14);
PrintUtil<Float> floatPrinter = new PrintUtil<>();
floatPrinter.print(2.718f);
PrintUtil<Short> shortPrinter = new PrintUtil<>();
shortPrinter.print((short) 100);
PrintUtil<Byte> bytePrinter = new PrintUtil<>();
bytePrinter.print((byte) 10);
PrintUtil<Character> charPrinter = new PrintUtil<>();
charPrinter.print('A');
PrintUtil<Boolean> booleanPrinter = new PrintUtil<>();
booleanPrinter.print(true);
}
}
```
在上面的示例中,我们使用了一个泛型类型 T 来定义打印类,然后在 print 方法中接收一个泛型类型的参数,使用 System.out.println 方法将其输出。在 main 方法中,我们使用了不同的类型实例化了打印类,并调用了 print 方法进行打印。