【发布时间】:2015-07-17 13:14:42
【问题描述】:
我写了一个科学计算器的java代码,也写了jUnit测试。下面是计算cubeRoot的方法。
public <T> Double cubeRoot(T number){
Double result= Math.cbrt((Double)number);
return Math.abs(result);
}
方法返回正确的结果整数和双精度类型,但是当我调用十进制方法时,我传递的参数是双精度类型。以下是上述方法的 JUint 测试。
public void testCalculateCubeRootWhenNegative(){
Integer number=-64;
assertEquals(-4.0,sci.cubeRoot(number));
}
public void testCalculateCubeRootOfdecimal(){
Double number=0.40;
assertEquals(0.736,sci.cubeRoot(number));
}
这是我正在使用的界面
public interface iScientific extends iMaths {
<T>Double squareRoot(T number);
<T>Double cubeRoot(T number);
找不到解决方案来解决“java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Double”错误
【问题讨论】: