小编Ign*_*ind的帖子

为什么在将泛型方法args转换为特定方法时无法转换为类型?

我为科学计算器编写了一个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"

java junit4

2
推荐指数
1
解决办法
75
查看次数

如何在 Linux 中将天数转换为秒

我正在编写一个 shell 脚本来将天数转换为秒数。

我正在努力首先在变量中获取值,而没有变量。

下面是我正在运行的脚本,但它对我不起作用。

DAYS=4
SECONDSPERDAY=86400
SECONDS=$(expr $DAYS/86400)
echo=$SECONDS
Run Code Online (Sandbox Code Playgroud)

unix linux shell

0
推荐指数
1
解决办法
969
查看次数

Java8 过滤器数组列表与字段日期上的自定义对象

我必须List<Card>在字段issueDate(类型String)上进行过滤,其中卡片要显示到过去 7 年的日期。

我尝试过的解决方案是issueDateStringto解析字段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)

甚至不能申请循环,因为可能有数百张卡发行,它通过迭代每个发卡日期(字符串到日期和检查年份)来影响性能

任何人都可以提出一个很好的解决方案来解决这个问题吗?

arraylist simpledateformat java-8 java-stream java-time

0
推荐指数
1
解决办法
219
查看次数