java - 将 map 传递给另一个要在 java 中修改的方法

标签 java arguments

所以我遇到了一些我认为看起来有点奇怪的代码。想看看大家对此有何看法

public class Test {

   public static void main(String[] args) {

      HashMap m = new HashMap();
      Test2 t2 = new Test2();
      t2.fill(m);
   }
}

public class Test2 {

    public void fill(HashMap m) {
        m.put(new Integer(0), new Integer(0));
    }

}

那么这段代码可以吗还是应该用其他方式完成?

谢谢

最佳答案

这很好,因为 java 中的对象是通过引用传递的。如果你试图在一个方法中直接赋值给 m,那是错误的:

m = new HashMap();

但是您可以使用传递的引用来修改作为参数传递的对象,就像您的示例代码一样。

将其视为将对象的位置传递给函数。您可以使用此位置信息来摆弄它。但由于位置只是一个值,因此分配给位置 (m) 不会对调用函数的位置的 m 产生影响。这就是为什么文章说参数是按值传递的。

关于java - 将 map 传递给另一个要在 java 中修改的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13871233/

相关文章:

Java EE jta hibernate.hbm2ddl.import_files 不起作用

java - 如何在android中从另一个Fragment调用一个Fragment方法

c++ - 将其转换为共享指针并将其作为参数传递给另一个 C++ 类

java - 通过网络将参数/参数传递给 jnlp。有哪些选择?

java - Spring Boot 单元测试 Autowiring

java - 尝试单击弹出窗口的按钮时出现 NoSuchElementException

excel - 函数参数 VBA

c - mprotect() C 中的无效参数

c - execl 中 C 程序的负参数被检测为选项

java - 输出不显示任何内容