Является ли плохой практикой передавать аргумент 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 одинаково для всех методов, и ни одно из выражений для соответствия имени метода не будет здесь полезным.
Пожалуйста, дайте мне знать, если требуется дополнительная информация или проблема не достаточно описательна.
Спасибо, что прочитали мою проблему и подумали над ней.