Get()模式以避免nullPointerException

时间:2015-12-04 11:01:13

标签: java design-patterns

我得到这样的链接:

record.getRootElement().getChild("Data").getAttributeValue("attr");

这个getter可以返回null。 是否有一些模式可以在不检查所有结果的情况下避免此异常?

1 个答案:

答案 0 :(得分:1)

这样的事情怎么样:

String path = "/Data:attr";
String value = lookup(record, path);
...

在其中实现lookup方法来解析路径,然后执行相应的“get”操作序列。如果您这样选择,lookup方法可以设计为返回null,如果序列中的某些中间“get”返回null。 (我不会这样做。我会抛出异常。)

显然,这种方法会对性能造成严重影响。但是,它应该是:

  • 比硬编码的get序列更强大(你可能会忘记空测试),
  • 更简洁,
  • 更灵活。