在查看一些Java代码时,我遇到了这样的一段代码:

Integer initialQ = someObject.getInitialQ();
Integer finalQ = null;
BigDecimal factor = calculateFactor(initialQ, finalQ);

if (finalQ.compareTo(initialQ) != 0){
   //do something
}


在方法calculateFactor中修改了finalQ

Eclipse给我if (finalQ...)上的“空指针访问:变量idUnidadFinal只能在此位置为空”警告。我了解,由于我们需要从方法中返回factor,因此修改finalQ的唯一方法是将其作为引用传递。但是,这是正确的,公认的方法吗?

我能想到的唯一替代方法是设计一个新类,该新类具有finalQfactor作为字段,但是看起来不必要地复杂。

最佳答案

这不是通过引用传递的。在传递给它的函数中创建了一个新对象。 finalQ的值只能为null。如果要更改值或将finalQ设置为全局,则需要将该对象返回。

07-26 01:11