Sri*_*san 6 java autoboxing findbugs
我收到Findugs错误"盒装值未装箱然后立即重新装箱".
这是代码:
Employee emp = new Employee()
Long lmt = 123L;
emp.setLimit(Long.valueOf(lmt));
Run Code Online (Sandbox Code Playgroud)
在此,Employee limit字段是类型Long.你能告诉我这是什么错误吗?
Pet*_*vic 17
问题是你正在转换Long- > long- > Long.
所以在后台:
Long.valueOf(lmt)转换Long为longemp.setLimit(<long>);转换long为Long 再次从Java 5开始,自动装箱发生=>您的代码应该如下所示:
Employee emp = new Employee()
Long lmt = 123L;
emp.setLimit(lmt);
Run Code Online (Sandbox Code Playgroud)
甚至:
Employee emp = new Employee()
long lmt = 123L;
emp.setLimit(lmt);
Run Code Online (Sandbox Code Playgroud)
发生这种情况是因为Long.valueOf(long)将拆箱您的lmtfrom Longto long,只是为了Long再次获得 a 。正如您所说,这limit是 a Long,您不需要使用Long.valueOf,只需使用 var :
emp.setLimit(lmt);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15993 次 |
| 最近记录: |