Re: [分享] 原來 Void 可以這樣用
※ 引述《macbuntu (邀怪)》之銘言:
: 這個方法就沒有 compiler 幫你檢查了... 如果我能記得 return ret;
: 我大可以 return null 就好了. public Void visit(Node f) { ... } 可以讓
: compiler 幫我記得, 挺好的.
: : 或者是
: : public Object visit(Nodef) {
: : visitImpl(Node f);
: : return null;
: : }
: : private void visitImpl(Node f) {
: : // your implementation here
: : }
: 我的 visitor 已經有 50 多個 method 了, 直接放個 Void 還是簡單的多 :)
這是你的應用需求,你能滿足於你的解法就好。
我一開始發文也是希望大家都能了解事情的原委,了解你的解法的重點在哪。
(你的解法還利用了一個 Java 1.5 才引進的語法:covariant returns,這部分
還有東西可討論,細節請參考
Java Language Spec., 3rd edition - 8.4.5 Method return Type)
否則,假設你遇到的 interface 是(與現在同樣的需求):
public interface SomeInterface {
public java.util.List visit(Node node); // return type 不為 Object
}
你該怎麼解呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.130.21
※ 編輯: sbrhsieh 來自: 218.173.130.21 (03/13 14:46)
推
03/14 00:17, , 1F
03/14 00:17, 1F
討論串 (同標題文章)