在查看一些java代码时,我遇到了如下代码:
Integer initialQ = someObject.getInitialQ();
Integer finalQ = null;
BigDecimal factor = calculateFactor(initialQ, finalQ);
if (finalQ.compareTo(initialQ) != 0){
//do something
}
finalQ
在方法calculateFactor中进行修改。
Eclipse 在 if (finalQ...)
上向我发出“空指针访问:变量 idUnidadFinal 在此位置只能为空”警告。据我了解,由于我们需要从方法返回 factor
,因此修改 finalQ
的唯一方法是将其作为引用传递。但是,这是正确的、可接受的做法吗?
我能想到的唯一替代方案是设计一个新类,其中包含 finalQ
和 factor
作为字段,但看起来不必要的复杂。
最佳答案
这不是通过引用传递。在传递给它的函数中创建了一个新对象。 finalQ
的值只能为 null。如果您想更改值或使 finalQ
全局化,则需要返回该对象。
关于java - 我们什么时候应该修改通过引用传递的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15132825/