假设我的方法需要一个对象作为参数,两者之间会有什么区别吗?应该首选哪一个?
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/