我为科学计算器编写了一个java代码,并为它编写了jUnit测试.Below是计算cubeRoot的方法.
public <T> Double cubeRoot(T number){
Double result= Math.cbrt((Double)number);
return Math.abs(result);
}
Run Code Online (Sandbox Code Playgroud)
方法返回正确的结果整数和double类型,但是当我调用十进制方法时,参数i pass是double类型.以下是上述方法的JUint Test.
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));
}
Run Code Online (Sandbox Code Playgroud)
这就是我正在使用的界面
public interface iScientific extends iMaths {
<T>Double squareRoot(T number);
<T>Double cubeRoot(T number);
Run Code Online (Sandbox Code Playgroud)
无法找到获取错误的解决方案"java.lang.ClassCastException:java.lang.Integer无法强制转换为java.lang.Double"
我正在编写一个 shell 脚本来将天数转换为秒数。
我正在努力首先在变量中获取值,而没有变量。
下面是我正在运行的脚本,但它对我不起作用。
DAYS=4
SECONDSPERDAY=86400
SECONDS=$(expr $DAYS/86400)
echo=$SECONDS
Run Code Online (Sandbox Code Playgroud) 我必须List<Card>在字段issueDate(类型String)上进行过滤,其中卡片要显示到过去 7 年的日期。
我尝试过的解决方案是issueDate从Stringto解析字段Date,然后应用date.after(startDate),date.before(endDate)如下所示:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
cardList.stream()
.map(s->s.getIssueDate())
.filter(dt -> sdf.parse(dt).after(sdf.parse("2020-06-08")) &&
sdf.parse(dt).before(sdf.parse("2020-08-12")))
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
甚至不能申请循环,因为可能有数百张卡发行,它通过迭代每个发卡日期(字符串到日期和检查年份)来影响性能
任何人都可以提出一个很好的解决方案来解决这个问题吗?