草庐IT

java - FindBugs RV_ABSOLUTE_VALUE_OF_RANDOM_INT 警告

我正在尝试使用FindBugs对我们的项目进行代码审查。我们有一个方法来生成唯一的id(随机):publicstaticStringgenerateUUID(intbase){returnString.valueOf(getCurrentTimeInNanos((long)base))+String.valueOf(Math.abs(random.nextInt()));}并且findBugs指示RV_ABSOLUTE_VALUE_OF_RANDOM_INT警告(RV:错误尝试计算带符号的32位随机整数的绝对值),我猜问题出在String.valueOf(Math.abs(random

java - 写一个 public int compareTo() 方法 java

我有一个任务,需要用参数(StringbookNum、StringbookTitle、intqoh、doublebookPrice)创建BookInventory对象的数组列表。其中bookNum是一本书的带连字符的ISBN号。创建这个数组后,我需要使用Collections类的排序方法。在我的实体BookInventory类中,我需要编写一个compareTo(),它将最终按bookNum(它是一个字符串)对数组列表进行排序。我该怎么做呢?这是我第一次遇到这个,我不明白。 最佳答案 这应该让你开始:publicclassBookI

java - 从java中的任意字符获取VK int

如何从作为字母的字符中获取VK代码?看起来您应该能够执行类似javax.swing.KeyStroke.getKeyStroke('c').getKeyCode()的操作,但这不起作用(结果为零)。如果你已经有了KeyEvent,每个人都知道如何获取键码,但是如果你只是想将chars转换为VKints怎么办?我对获取奇怪字符的FK代码不感兴趣,只有[A-Z]、[a-z]、[0-9]。这个问题的背景--------我见过的所有机器人教程都假设程序员喜欢通过发送带有VK代码的按键来拼写单词:intkeyInput[]={KeyEvent.VK_D,KeyEvent.VK_O,KeyEven

java - 从 mongo 结果中检索 int 的最简单方法?

我像这样从mongo游标对象中提取一个整数:DBObjectmapObj=cursor.next();intautostart=(int)(double)(Double)mapObj.get("autostart");我必须进行三重转换才能将其转换为整数,这似乎很奇怪,有没有更好的方法? 最佳答案 我认为您真正要找的是这样的东西:DBObjectmapObj=cursor.next();intautostart=((Number)mapObj.get("autostart")).intValue();不转换为字符串,如果值从原始In

java - 使用 Jackson 反序列化时防止 float 到 int 的转换

我有一个具有以下结构的JSON负载:{"age":12}它映射到以下类:publicclassStudent{privateIntegerage;publicIntegergetAge(){returnage;}publicvoidsetAge(Integerage){this.age=age;}}目前,如果用户为age提交浮点值,小数点将被忽略,只接受整数部分。我想要做的是阻止用户提交具有浮点值的负载age(见下文)并抛出异常(类似于第8行的“字段‘age’的无效JSON值”col5"-这是反序列化失败时的标准消息)。{"age":12.7//willbetruncatedto12}

java - 获取 int 中使用的位长度

如果你有二进制数10110,我怎样才能让它返回11111?例如,将第一个1之后的所有位设置为1的新二进制数,下面列出了一些类似的示例:101应该返回111(3位长度)011应返回11(2位长度)11100应返回11111(5位长度)101010101应该返回111111111(9位长度)在Java中如何获得最简单的方法?我可以想出一些方法,但它们不是很“漂亮”。 最佳答案 我的尝试:Integer.highestOneBit(b)*2-1 关于java-获取int中使用的位长度,我们在S

java - 为什么 i+=l 会编译,其中 i 是 int 而 l 是 long?

我发现了Java's+=,-=,*=,/=compoundassignmentoperators(好问题:)),但它有一部分我不太明白。借用那个问题:inti=5;longl=8;Theni=i+l;willnotcompilebuti+=l;willcompilefine.链接问题的已接受答案指出:AcompoundassignmentexpressionoftheformE1op=E2isequivalenttoE1=(T)((E1)op(E2)),whereTisthetypeofE1,exceptthatE1isevaluatedonlyonce.给出i+=l;与i=(int)

(int)Math.pow(2,x) 和 1<<x 的 Java 结果不同

为什么以下两个操作在Java中对于x=31或32产生不同的结果,而对于x=3产生相同的结果?intx=3;intb=(int)Math.pow(2,x);intc=1结果:x=32:b=2147483647;c=1;x=31:b=2147483647;c=-2147483648;x=3:b=8;c=8 最佳答案 有多个问题在起作用:安int只能存储-2147483648之间的值和2147483647.1只有usesthelowestfivebitsofx.因此,1根据定义与1相同.Shift操作在two's-complementin

java - 在java中迭代静态int值

我有一个简单的问题。有没有一种方法(我想是使用反射)来迭代一个类的所有静态值?例如classAny{staticintone=1;staticinttwo=2;staticintthree=3;publicstaticvoidmain(String[]args){for(inti:magicMethod(Any.class)){System.out.println(i);}}}输出123谢谢。 最佳答案 importjava.util.*;importjava.lang.reflect.*;classAny{staticintone

为什么我在C ++程序中间的int更改?

我写了下面的代码。这是这样的:我读到x和y从输入流中没有关系-均值x和y是输入的确切值-但后来它们更改为其他一些值。怎么了?我不明白!!intcount(chars[],charss[],longlongintposF,longlongintposE){}intmain(){chars[]{};intq=0;cin>>s;cin>>q;intchoise=0;while(q--){cin>>choise;if(choise==1){intx=0;cin>>x;charc;cin>>c;s[x-1]=c;}elseif(choise==2){intx=0;inty=0;cin>>x>>y;//F