我已經找到了這個(對我來說很奇怪)一段代碼。其實我也從來沒有見過這樣使用,從來沒有使用過自己,所以這是一件相當混亂......沿着使用HashMap的在這裏舉例Java方法返回對象還是直接操作它?
- 線去,但其他對象會表現得同樣
public static void fillData(HashMap<Object, Object> dataMap){
dataMap.put("key","value");
}
現在,這是非常令人困惑,因爲我學會了你的方式做到這一點是更喜歡這個
public static HashMap<Object, Object> fillData(){
HashMap<Object, Object> dataMap = new HashMap<>();
dataMap.put("key","value");
return dataMap;
}
現在是那裏的時候,我應該用一種方式或時間另一個?我對編程還很陌生,但我還沒有發現任何有關這種結構的東西。
我也已經嘗試了一圈,發現這僅適用於使用對象,而不是原語......
一般來說,你應該儘量避免修改參數,但有些情況下這是不可能的。 –
這個問題和答案可能也有幫助:http://stackoverflow.com/questions/7931523/methods-that-change-a-value-and-not-return-anything –
順便說一句:基元是通過值傳遞和因此只能在對呼叫方沒有任何影響的方法中操作副本。 –