java - 在单独的方法中初始化 Java 对象 : why this won't work

标签 java methods constructor initialization

这是一件我不能说的事情,我很惊讶它不会起作用,但无论如何,找到这个案例的解释对我来说很有趣。 假设我们有一个对象:

SomeClass someClass = null;

还有一个将这个对象作为参数来初始化它的方法:

public void initialize(SomeClass someClass) {
  someClass = new SomeClass();
}

然后当我们调用时:

initialize(someClass);
System.out.println("" + someClass);

它将打印:

null

感谢您的回答!

最佳答案

Java 是做不到的。在 C# 中,您将使用 refout 关键字传递参数。 java中没有这样的关键字。详情可以看这个问题:Can I pass parameters by reference in Java?

顺便说一句,出于同样的原因,您不能在 java 中编写交换两个整数的交换函数。

关于java - 在单独的方法中初始化 Java 对象 : why this won't work,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7056392/

相关文章:

c# - CA1062:共同构造函数调用上的 ValidateArgumentsOfPublicMethods

c++ - 在 C++ 构造函数中使用 new 运算符是否正确?

javascript - 使用环绕在一维阵列网格中查找邻居的更优雅的方法?

java - 如何从同一类中的先前方法访问 ArrayList?

java - 是否可以使用同一个 FileWriter 文件并通过多种方法写入它?

java - 如何在Java中将长参数列表重构为参数对象?

Java:当它具有 protected 构造函数时,如何从 java.io 为 Reader 类创建新的类对象

java - Spring MVC :- How do i get the uploaded image to display on jsp page as soon as the user selects the image. 我在这里使用Spring框架

java - 在 O(n) 时间和 O(1) 空间内将所有 x 元素插入数组末尾

java - 使用 gradle 设置休息服务