作者PsMonkey (痞子军团团长)
看板java
标题Re: [问题] JAVA创立物件与方法回传值问题
时间Sat May 10 14:47:05 2014
※ 引述《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
--
钱锺书:
说出来的话
http://www.psmonkey.org
比不上不说出来的话
Java 版 cookcomic 版
只影射着说不出来的话
and more......
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.43.104.99
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/java/M.1399704428.A.F43.html
1F:推 tails32100:ArrayList是因为add()实际上是实作Collection介面吧.. 05/10 14:55
2F:→ tails32100:应该是其他实作可能会有add失败的可能? 05/10 14:56
3F:→ tails32100:刚查过,像Set如果有相同元素就会false了XD 05/10 14:58