想象一下,你有一个对象集合,并且你使用了访问者模式 - 你将如何最优雅地处理从集合中检索到的null?
答案 0 :(得分:4)
您的问题需要一些特殊类型的可访问对象,或者您试图对访问者模式施加太多责任。 如果你真的有一些不能访问的有意义的对象,请尝试 Null Object 模式。
public class NullElement implements Element {
public void accept(ElementVisitor visitor) {
// noop
}
}
答案 1 :(得分:1)
除了放置if (element != null) element.accept(visitor);
如果您正在使用番石榴或其他东西,您当然可以做filter
,但这似乎有点矫枉过正。