Вы можете также рассмотреть возможность использования класса аргумента со строителем.
myMethod(MyArgument.newBuilder().withFirstArg("arg1").build());
- Это долго и утомительно
- Вы в безопасности от карт, имеющих ключи от ошибок
- Вы можете указать обязательные и необязательные параметры
- Ваш метод более чистый, так как он обращается к методам напрямую, вместо того, чтобы проверять, содержит ли карта ключ
В качестве альтернативы, вы можете попробовать использовать свободный интерфейс.
myMethod("arg1").invokeWith("arg2").anotherOne("arg3").andOneMore("arg4").andTheLastOne("arg5");