有效的 java 声明了私有方法中断言的良好实践。
“对于未导出的方法,作为包作者,您可以控制调用该方法的环境,因此您可以并且应该确保只传入有效的参数值。因此,非公共方法通常应该使用断言检查它们的参数,如如下图:
例如:
// Private helper function for a recursive sort
private static void sort(long a[]) {
assert a != null;
// Do the computation;
}
我的问题是,即使调用排序的公共函数有空指针检查,是否也需要断言?
例子:
public void computeTwoNumbersThatSumToInputValue(int a[], int x) {
if (a == null) {
throw new Nullptrexception();
}
sort(a);
// code to do the required.
}
换句话说,在这种情况下,私有函数中的断言将是“多余的”还是强制性的。
谢谢,