java - 我们什么时候应该修改通过引用传递的对象?

标签 java pass-by-reference

在查看一些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 的唯一方法是将其作为引用传递。但是,这是正确的、可接受的做法吗?

我能想到的唯一替代方案是设计一个新类,其中包含 finalQfactor 作为字段,但看起来不必要的复杂。

最佳答案

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

关于java - 我们什么时候应该修改通过引用传递的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15132825/

相关文章:

java - 应用程序从 URL 检索图像并在 Android 应用程序中显示时崩溃

java - 为什么ArrayList要实现序列化?

java - 使用未完全初始化的 'this' 作为参数实例化对象

java - 如何在Android中过滤JsonObject中的值?

c++ - 如果我用一个struct来携带argc和argv,我该如何将地址argv赋值给结构体内部的一个变量呢?

Java 显然是按值传递,但需要一些说明

java - 如何在调用特定 Java 方法时转储堆栈跟踪?

JavaScript - 如何创建一个包含引用对象的数组?

c++ - 在模板类中通过引用传递

c++ - 按引用传递然后复制和按值传递在功能上是否不同?