Re: [問題] JAVA創立物件與方法回傳值問題

作者: PsMonkey (痞子軍團團長)   2014-05-10 14:47:05
※ 引述《iammarsman ( )》之銘言:
: new TestServerClass(); // 沒有宣告物件承接新物件
: testServerClass.secondTestMethod(); // 沒有變數承接回傳值
: 以上兩段程式都沒有出現編譯錯誤且可以正常執行,
^^^^^^^^^^^^^^^^^^^^^^^^^^
: 想請問一下這些都是java中所允許的情形嗎?
如果你說的「Java」是單純的「Java 語言規格」
那這個問題,我覺得是自問自答啦 XD
不允許卻可以正常執行,這是黑魔法吧? lol
: 在什麼情況下會使用上面兩種撰寫方式呢?
: 懇請賜教, 感激不盡!
你的問題都十分... 微妙
我甚至都不知道該怎麼認真回答而不被懷疑是在酸人
(謎之聲:那是因為你太愛酸人 [指])
基本上我會把你的問題歸類為政策面的問題
也就是語言規範 / 語法允許你這麼作
沒有可不可以的問題,而是適不適合這麼作的問題
也就會變成青菜蘿蔔各有所好、各說各話的狀況
(就像我不懂為什麼有人喜歡 dynamic type language [完全離題])
new 一個 instance 但是卻不 assign 給任何變數
這種情況比較少見
甚至可能在某些人的 coding style 中是錯誤 / 壞味道的來源
因為理論上應該 / 可以改用 static method 來取代...?
至於呼叫一個 method,明明有回傳值但是卻不 assign 給任何變數
這個狀況基本上很常見,甚至你已經用了一堆只是你不知道 XD
尤其是在有設計 exception 的情況下
很多時候你不 care 回傳值、你比較在意炸了什麼 exception
我個人最常用的就是 ArrayList.add()
我甚至不知道為什麼它要有回傳值
source code 當中永遠回傳 true
只能說 Collection.add() 當初設計時應該有其他考量 XD
作者: tails32100 (Tails)   2014-05-10 14:55:00
ArrayList是因為add()實際上是實作Collection介面吧..應該是其他實作可能會有add失敗的可能?剛查過,像Set如果有相同元素就會false了XD

Links booklink

Contact Us: admin [ a t ] ucptt.com