Java方法返回对象还是直接操纵它?

Lin*_*nxy 5 java methods return

我遇到了这段代码(对我来说很奇怪)。实际上,我从未见过这种用法,也从未亲自使用过,所以这很令人困惑...

  • 这里以哈希图为例,但其他对象的行为相同
public static void fillData(HashMap<Object, Object> dataMap){
    dataMap.put("key","value");
}
Run Code Online (Sandbox Code Playgroud)

现在,这非常令人困惑,因为我了解您的方式更像这样

public static HashMap<Object, Object> fillData(){
    HashMap<Object, Object> dataMap = new HashMap<>();
    dataMap.put("key","value");
    return dataMap;
}
Run Code Online (Sandbox Code Playgroud)

现在有时间我应该使用一种方法或另一种方法吗?我对编程还是很陌生的,但是我还没有发现关于这种类型结构的任何东西。

我还进行了实验,发现它仅适用于对象,不适用于基本体...

luk*_*sch 3

好吧,考虑一下该方法操作现有非空映射的情况。在这种情况下,第一个例子就完全有意义了。