С Java 8 я видел все больше и больше статей об использовании Option / Optional. Я понимаю, что они пытаются изобразить, и вижу много примеров того, как они используются в качестве возвратов. Однако я не вижу, чтобы они использовались в качестве аргументов метода / функции в языках, в которых нет синтаксиса для параметров по умолчанию / необязательных.
Есть ли причина не использовать Optional
в качестве аргумента метода в том случае, если вы знаете, что аргумент - это то, что может или не может быть необходимо? Вот пример, который я мог придумать:
Optional<Customer> lookupCustomer(String firstName, Optional<String> middleName, String lastName)
Optional
предназначен в первую очередь для возвращаемых значений, которые могут отсутствовать. Конечно, возможны и другие варианты, но они громоздки и, вероятно, имеют плохой стиль.