【发布时间】:2017-10-18 14:32:48
【问题描述】:
我想检查一下我的泛型是否属于整数类型。如果是,则应将它们转换为双精度,然后将它们加在一起。我收到错误“操作符 * 未定义参数类型 E,双精度”。之后将两个强制转换的值加在一起也存在同样的问题。
我该如何解决这个问题?
提前致谢:)
public void add(E value1, E value2) {
if(value1 instanceof Integer && value2 instanceof Integer) {
double valueCast1 = value1 * 1.0;
double valueCast2 = value2 * 1.0;
System.out.println(value1 + value2);
}
}
【问题讨论】:
-
你为什么要写这样的代码?
-
我想 Kayaman 可能要问的是,你为什么要乘以 1。
-
Java 和 JavaScript 是两种不同的语言... *1.0 适用于 javascript...
-
当然,身体本身就是无稽之谈。该代码也绝不是通用的。当然,有泛型类型
E,但它也可能只是Object。 -
主要问题是为什么你要为一个方法使用两个通用参数,该方法只有在你提供两个整数然后尝试(错误地)转换为双精度并打印它们的总和时才起作用。