java - 如何计算有符号随机整数的绝对值

标签 java findbugs

我正在尝试生成存储的随机数,我需要返回字符串值。

这是我的方法:

public String generateRand() {
    java.util.Random rand = new java.util.Random(System.currentTimeMillis());
    String rnd = "" + Math.abs(rand.nextInt()) + "" +
       Math.abs(System.currentTimeMillis());
    return rnd;
}

Jenkins 的 Findbugs 插件警告我有Bad attempt to compute absolute value of signed random integer

此代码生成一个随机有符号整数,然后计算该随机整数的绝对值。如果随机数生成器返回的数字是 Integer.MIN_VALUE,则结果也将为负,因为 Math.abs(Integer.MIN_VALUE) == Integer.MIN_VALUE。 长值也出现了同样的问题。

计算有符号随机整数的绝对值的最佳方法是什么?

最佳答案

使用 <code>rand.nextInt(Integer.MAX_VALUE);</code> 代替 <code>Math.abs(rand.nextInt())</code>

关于java - 如何计算有符号随机整数的绝对值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23435875/

相关文章:

java - Findbugs 与 Google CodePro AnalytiX(Eclipse 插件)

java - 使用 Java 从格式化字符串中提取

java - firebase 在家庭 Activity 内切换 Activity 时导航到登录 Activity

java - FindBugs 报告空指针取消引用

java - FindBugs: "may fail to close stream"- 这对 InputStream 有效吗?

hudson - Checkstyle 和 Findbugs 仅在 Jenkins(和/或 Hudson)上更改文件

java - 字符串的 IF 条件

java - 当计时器结束时,如何中断用于从套接字接收数据的 while 循环?

java - 接收 JSON 响应

java - 尝试了解 findbugs 多线程错误