Сегодня я писал функцию, которая имела два обязательных аргумента и три необязательных аргумента. Поскольку использование Optional<>
типов не одобряется в качестве аргументов, перегрузка функций была моим инструментом для решения этой проблемы. В итоге я получаю что-то вроде этого:
public boolean func(int a, String b)
public boolean func(int a, String b, String c)
public boolean func(int a, String b, int d)
public boolean func(int a, String b, long e)
Тогда я должен сделать различные комбинации двух аргументов ...
public boolean func(int a, String b, String c, int d)
public boolean func(int a, String b, String c, long e)
public boolean func(int a, String b, int d, long e)
и наконец "полная функция"
public boolean func(int a, String b, String c, int d, long e)
Мне кажется, это слишком много работы, и когда это происходит, я чувствую, что я делаю что-то не так. Почему я должен создавать 7 дополнительных функций вместо использования Optional
или POJO в этом случае? Какой самый эффективный способ справиться с этим?