当我第一次从 c 迁移到 Java 时,我以为我已经完成了每个函数开头的所有烦人的参数检查。 (有福的异常(exception))
最近我意识到我正在慢慢地再次回到这种做法,并且我开始对所有这些感到非常恼火
if (null == a || null == b || null == a.getValue() || ...)
{
return null;
}
例如,我有一个实用程序类,可以分析网页并从中提取特定元素。任何对带有 null 元素的 dom 对象函数的调用通常都会导致异常 - 因此,我在此类中编写的几乎所有函数都有无数的 null 检查:
private URL extractUrl(Element element) throws Exception {
if (null == element) {
return null;
} ...
public List<Object> getConcreteElements(String xpath) throws Exception {
if (null == xpath) {
return Collections.emptyList();
}...
public String getElementsAsXML(String xpath) throws Exception {
if (null == xpath) {
return null;
}...
在每个函数的开头。这是我也应该使用的东西,还是有一些我不知道的编码实践可以简化我的生活?
最佳答案
返回 null 意味着调用者必须始终检查方法的结果。意味着更多悲惨的空检查。
考虑使用 NullObject 模式,在该模式中返回有效对象但具有空操作。 IE。如果返回集合或类似情况,则为空列表。
关于java - 检查所有函数中的所有函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1206637/