- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
将 NULL 参数传递给方法是否是一种不好的做法,或者换句话说,我们是否应该有允许 NULL 参数作为有效参数的方法定义。
假设我想要两种方法1. 检索所有公司的列表2. 根据过滤器检索公司列表。
我们可以有如下两种方法
List<Company> getAllCompaniesList();
List<Company> getCompaniesList(Company companyFilter);
或者我们可以有一个单一的方法
List<Company> getCompaniesList(Company companyFilter);
在第二种情况下,如果参数为 NULL,则方法返回所有公司的列表。
除了实践中的良好实践问题外,我还看到了后面的方法的另一个问题,下面将对此进行解释。
我正在实现 Spring AOP,我想在其中对参数进行一些检查,例如1.参数是否为空?2.集合的大小是否为0?
有些情况下我们根本不能有空参数,比如方法
void addBranches(int companyId, List<Branch>);
通过定义如下方法,使用 Spring AOP 可以很好地执行此检查
@Before(argNames="args", value="execution(* *)")
void beforeCall(JoinPoint joinPoint ,Object[] args )
{
foreach(Object obj in args)
{
if(obj == NULL)
{
throw new Exception("Argument NULL");
}
}
}
但我面临的问题是,因为我已经定义了一些方法,这些方法应该接受一个方法的多个功能的 NULL 参数,如上面提到的方法 List getCompaniesList(Company companyFilter);所以我不能对所有方法统一应用 AOP,而且方法名称匹配的某些表达式在这里也没有用。
如果需要更多信息或问题描述不够,请告诉我。
感谢您阅读我的问题并给予思考。
最佳答案
我使用一个非常简单的规则:
决不允许 null 作为参数或公共(public)方法的返回值。
我使用 Optional和 Preconditions或 AOP 来执行该规则。这个决定已经为我在 NPE 或奇怪行为后修复错误节省了大量时间。
关于java - NULL 参数是一种不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4535112/
如果您想分享更多信息,可以在这里找到整个资源 指针: https://github.com/sergiotapia/DreamInCode.Net 基本上,我的API将为其他开发人员提供
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 5 年前。 Improve this qu
我不是 SCM 工具的经验丰富的用户,尽管我确信它们的用处,当然。 我在以前的工作中使用了一些不起眼的商业工具,在当前的工作中使用了 Perforce,并在我的小型个人项目中使用了 TortoiseS
所以我想知道一些我应该避免在 javascript 中做的事情以获得良好的 SEO 排名。在我的下一个站点中,我将广泛使用 jquery 和 javascript,但不想牺牲 SEO。那么您认为我应该
基本上,我想知道什么是避免 future CSS 代码出现问题和混淆的最佳方法... 像这样命名 CSS 属性: div#content ul#navigation div.float-left (真
我是一名优秀的程序员,十分优秀!