作者sbrhsieh (sbr)
看板java
标题Re: [分享] 原来 Void 可以这样用
时间Fri Mar 13 14:40:11 2009
※ 引述《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)
1F:推 macbuntu:还好我的 interface 只是 Object @_@ 03/14 00:17