例如,在您的一个 DAO 对象中编写方法时,并且您不希望此方法接受某些输入,为了讨论,说它不允许空参数。考虑到这种方法将来可能会被新的团队成员重用,你将如何实现它。
我这样做的方式是:
- 在接口中,我在方法 javadoc 中记录了参数 a、b 和 c 不能为空。
- 在方法内部,我首先检查空值,如果 a、b 或 c 中的任何一个为空,则抛出 IllegalArgumentException。
但是,如果将来某个开发人员只是读取方法签名并确定它是他/她需要的并开始使用它,而不注意这个细节,更糟糕的测试不会揭示它。不会发生 NULL 指针异常,我们会收到一条有用的错误消息,但我们仍然会在生产中遇到本可以避免的错误。
有没有办法在编译时强制执行?我对此表示怀疑,但是最安全和最防开发人员的方法是什么?