小编Sam*_*and的帖子

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

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

这是我的方法:

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;
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

java findbugs

9
推荐指数
2
解决办法
2080
查看次数

计算绝对值的不良尝试

        int server = (Math.abs(q.hashCode()) % solrLoadBalanceNumOfServers) + 1;
Run Code Online (Sandbox Code Playgroud)

詹金斯警告我这个说明:

尝试计算带符号的32位哈希码的绝对值

此代码生成哈希码,然后计算该哈希码的绝对值.如果哈希码是Integer.MIN_VALUE,那么结果也将是负数(因为Math.abs(Integer.MIN_VALUE) == Integer.MIN_VALUE).

2 ^ 32个字符串中的一个具有hashCode Integer.MIN_VALUE,包括"polygenelubricants""GydZG_"和""DESIGNING WORKHOUSES".

有谁知道为什么我得到这个计算绝对值的警告?

java jenkins

6
推荐指数
1
解决办法
3125
查看次数

如何比较两个日期在 30 天内的情况

我试图将我的表单设置为指定两个日期在 30 天内的逻辑。

Date fromDate = form.getFromDate();
Date toDate = form.getToDate();
if(fromDate.compareTo(toDate) > 30){ // if the selected date are within one month

 } 
Run Code Online (Sandbox Code Playgroud)

我想添加类似的验证以确保所选的两个日期在月份范围内

java

3
推荐指数
1
解决办法
3934
查看次数

Freemarker - 检查布尔值

检查 FreeMarker 中表单数据中 boolean 值是否正确的语法是什么,我的代码:

<#if "${form.allStores}" !false>
        <@displayRow label="Receiving Stores" value="All Stores" />
    <#elseif "${form.storesReceiving}" == false || "${form.storesReceiving}"?has_content>
        <@displayRow label="Receiving Stores" value="No Stores"/>
    <#else>
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

Could not prepare mail; nested exception is freemarker.core._MiscTemplateException: Can't convert boolean to string automatically, because the "boolean_format" setting was "true,false", which is the legacy default computer-language format, and hence isn't accepted. --
Run Code Online (Sandbox Code Playgroud)

java boolean freemarker

3
推荐指数
1
解决办法
1万
查看次数

如何使用stream api将两个过滤器应用于一个列表

我想在列表中添加第二个过滤器,我想排除空字符串旁边的字符串列表中的副本.

以下是我尝试使用流API的方法:

这将区分结果,但不是空的

List<User> users = userService.getUsers(form.getId());
    List<String> positionNames = users.stream().map(User::getTitle).distinct().collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

我怎样才能将它们组合在一起?

java java-8

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

在 Date Java 中设置时区

尝试在 Date 中设置时区(我知道 Date 已弃用)

    LOG.error(modifiedDate + "Date in service"); //Mon Sep 21 06:15:00 CDT 2020
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z", Locale.ENGLISH);
format.setTimeZone(TimeZone.getDefault());
String dateString = format.format(modifiedDate);
LOG.error(dateString + "  dateString"); //2020-09-21 06:15:00 -0500
Date date = format.parse(dateString);
LOG.error(date + "    date after parsing"); //Mon Sep 21 06:15:00 CDT 
Run Code Online (Sandbox Code Playgroud)

解析后时区没有改变,我错过了什么?

java date

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

标签 统计

java ×6

boolean ×1

date ×1

findbugs ×1

freemarker ×1

java-8 ×1

jenkins ×1