java - 在 Java 中,如果我将方法 arg 作为 myMethod(myObjectReference) 或 myMethod(new MyObject) 传递,会有什么区别?

标签 java

假设我的方法需要一个对象作为参数,两者之间会有什么区别吗?应该首选哪一个?

public static void methodOne(){
   myMethod(new MyObject());

}

public static void methodOne(){
  MyObject objRef = new MyObject();
  myMethod(objRef);
}

最佳答案

在第一个示例中,在方法调用后您无法访问 MyObject 的实例,而在示例 2 中,您仍然可以访问它,因为您将该实例分配给了一个变量。

因此,如果您需要/想要重用该实例,请使用示例 2。如果您只需要方法中的实例,则可以使用示例 1(尽管您也可以在方法中实例化它 -> 无参数完全)

第二个示例还为您提供了为对象提供有意义的标识符的机会。有时这对于可读性很有用。

关于第二个示例的另一件事:如果您对传递给方法的实例执行更改,这些更改将在您的 methodOne 中持续存在

关于java - 在 Java 中,如果我将方法 arg 作为 myMethod(myObjectReference) 或 myMethod(new MyObject) 传递,会有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55472637/

相关文章:

java - 如何为 RMI 注册表设置自定义端口?

java - 为什么当通过 Web 服务同时创建文档时 libreoffice sdk 会崩溃?

java - 使用单选按钮更改 GUI 的颜色

Java Mongodb 正则表达式查询

java - 将字符串转换为枚举?

java - JPA错误: without eclipselink

java - XMLBeam 的默认值

java - 如何在 JavaFX 中使用 ObservableMap<KeyObject, ObservableList<CustomObject>> 填充 TableView

java - 在 Java 中处理 HTTP 调用的大文件

java - 无法创建 Java 虚拟机 - Mac OS 上的 Tomcat 服务器