NULL 参数是一种不好的做法吗?
将 NULL 参数传递给方法是否是一种不好的做法,或者换句话说,我们是否应该有允许 NULL 参数作为有效参数的方法定义。
假设我想要两个方法1。以检索所有公司的列表 2.根据过滤器检索公司列表。
我们可以有两种方法,如下所示
List<Company> getAllCompaniesList();
List<Company> getCompaniesList(Company companyFilter);
或者我们可以有一个单一的方法
List<Company> getCompaniesList(Company companyFilter);
在第二种情况下,如果参数为 NULL,则方法返回所有公司的列表。
除了良好实践的问题之外,实际上我看到了后面方法的另一个问题,下面将对此进行解释。
我正在实现Spring AOP,其中我想对像1这样的参数进行一些检查。参数是否为 NULL?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,并且方法名称匹配的一些表达式在这里也没有用。
如果需要更多信息或问题描述性不够,请告诉我。
感谢您阅读我的问题并考虑它。