gpt4 book ai didi

java - CWE-681 : Avoid numerical data corruption during incompatible mutation in Java

转载 作者:行者123 更新时间:2023-12-01 19:55:06 27 4
gpt4 key购买 nike

根据 CISQ 标准和 CAST 扫描工具,我收到一个名为“避免不兼容突变期间数字数据损坏”的错误。下面是示例代码。知道如何避免这种情况吗?

 public int getage() {
return (int) ChronoUnit.YEARS.between(getdob(), LocalDate.now());
}

我尝试使用 java.Math.toIntExact 的 JAVA 8 toIntExact,但我不确定这有什么不同。

return toIntExact(ChronoUnit.YEARS.between(LocalDate.of(2014,1, 1), LocalDate.now()));

最佳答案

正如 @AndyTurner 在评论中所表达的,问题在于从 longint 的转换,这可能会导致错误的计算。

可能的解决方法是将返回类型更改为long,这可能导致将转换移动到不同的位置,或者使用toIntExact

与普通旧式转换的不同之处在于,如果 long 实际上不适合 inttoIntExact 会引发 >算术异常

关于java - CWE-681 : Avoid numerical data corruption during incompatible mutation in Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59045859/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com