在查看一些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
的唯一方法是将其作为引用传递。但是,这是正确的,公认的方法吗?我能想到的唯一替代方法是设计一个新类,该新类具有
finalQ
和factor
作为字段,但是看起来不必要地复杂。 最佳答案
这不是通过引用传递的。在传递给它的函数中创建了一个新对象。 finalQ
的值只能为null。如果要更改值或将finalQ
设置为全局,则需要将该对象返回。