装箱价值拆箱然后重新装箱

DuncanKinnear:

FindBugs给我有关以下行的警告,该行invoiceNumber是一个Integer对象:

text.append(String.format("%010d-", (invoiceNumber == null) ? 0 : invoiceNumber));

警告是:“装箱的值被取消装箱,然后立即重新装箱”

现在,我认为我了解(取消)装箱,但是如果没有收到警告,我看不到您将如何做同样的事情?

我发现我可以改用以下代码来摆脱警告,但这似乎更加冗长:

int invNo = (invoiceNumber == null) ? 0 : invoiceNumber;
text.append(String.format("%010d-", invNo));

有人可以告诉我做上述事情的“正确”方法是什么?

顺便说一句,我已经看了相关的问题,并且我理解了这些问题是怎么回事,但这似乎与这些问题都不匹配。

他们是 :

(invoiceNumber == null) ? 0 : invoiceNumber)表达式的类型intinvoiceNumberinvoiceNumber没有的情况下需要拆箱null

另一方面,String.format期望单个String参数后跟Object引用,这意味着您int将立即Integer再次装箱

您可以尝试使用来避免原始的拆箱操作(invoiceNumber == null) ? Integer.valueOf(0) : invoiceNumber),这会使此表达式返回Integer

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

装箱值被拆箱,然后立即重新装箱

来自分类Dev

装箱值被取消装箱,然后立即重新装箱 - 双倍

来自分类Java

谁将进行自动装箱/拆箱?

来自分类Java

java自动装箱/拆箱如何工作?

来自分类Dev

CIL-装箱/拆箱与可为空

来自分类Java

Java自动装箱/拆箱工作

来自分类Dev

与通用类型和装箱/拆箱交互

来自分类Dev

装箱和拆箱的C ++类

来自分类Dev

C#中的装箱/拆箱

来自分类Dev

装箱/拆箱,更改装箱值的参考副本不会更改为装箱值

来自分类Dev

转换为基类是否涉及装箱和拆箱

来自分类Dev

LambdaMetaFactory 装箱/拆箱参数和返回类型

来自分类Java

为什么自动装箱/拆箱在这里失败?

来自分类Java

Java·带lambda的装箱和拆箱原始矩阵

来自分类Dev

scala Option [Int]基本装箱和拆箱

来自分类Dev

通过参考/值传递-装箱/拆箱关系

来自分类Dev

装箱/拆箱成本以及装箱对象在写入时是否有副本?

来自分类Java

当将==用于基本值和装箱值时,自动装箱完成还是拆箱完成

来自分类Dev

装箱

来自分类Dev

在这个例子中,需要拆箱时是否使用装箱?

来自分类Dev

为什么整数自动装箱和拆箱对Java中的Arrays.asList不起作用?

来自分类Dev

打印 int 值数组时,流是否使用装箱和拆箱

来自分类Dev

自动装箱/自动拆箱不适用于有界的Type参数

来自分类Java

为什么我们在Java中使用自动装箱和拆箱?

来自分类Java

为什么有些语言需要装箱和拆箱?

来自分类Dev

为什么我们需要在C#中装箱和拆箱?

来自分类Java

整数自动拆箱和自动装箱会带来性能问题吗?

来自分类Dev

拆箱指数因子表将装箱值乘回原始值

来自分类Dev

避免在字典中使用对象TValue进行装箱/拆箱

Related 相关文章

热门标签

归档