天天看點

Java程式設計——重構-你為什麼要對參數指派?

對于學過多門語言的開發者來說,應該都明白在不同語言中對參數指派有着不同的意義,

總的來說參數有值傳遞和引用傳遞兩種,

而在Java中隻有值傳遞的概念。

這意味着在方法内對參數指派是沒有意義的。

而且還很容易引起代碼的誤解。

對于初學者來說這一點比較重要,可能不是很容易了解,我們用例子來說明。

修改參數

我們來看個簡單的例子,在這個例子裡面我們在方法内對參數進行了修改,

這段代碼的輸出還不至于讓人糊塗,

但如果修改的是對象的話,代碼可能就有誤導性了

修改參數對象

為了說明這個問題,我寫了一個demo代碼,當然代碼是完全跑不通的。。隻是為了讓代碼更容易了解,是以才這麼寫,

這段代碼了解上來就是,執行個體化了一個日期對象是4月1日,然後在方法内對日期加了一天,

然後再對這個日期(應該變成了4月2日)換車一個5月2日的對象,

這時候就可以驗證對參數指派和對參數修改的差別所在。

如果這代碼運作正常的話,輸出應該是下面這樣

你看,在方法内對參數指派是沒有意義的,因為Java它傳遞的是值,而不是引用,是以并不能夠修改原引用的數值。

這對于從 C 這種可以傳引用的語言轉過來的開發者來說其實有點别扭,

當然他們也可能會被這種代碼誤導。

總結

Java是一門傳值語言,在coding中其實應該盡量避免對參數指派的行為,

如果你看到代碼中有這樣的代碼,

請盡情重構了它吧!

歡迎工作一到五年的Java工程師朋友們加入Java架構開發:468947140

點選連結加入群聊【Java-BATJ企業級資深架構】:https://jq.qq.com/?_wv=1027&k=5zMN6JB

本群提供免費的學習指導 架構資料 以及免費的解答

不懂得問題都可以在本群提出來 之後還會有職業生涯規劃以及面試指導

對本文感興趣、喜歡的歡迎關注小編,小編持續更新