Why Java 8's Optional Should Be Used in Arguments
While guidelines suggest Optional should be confined to return types, the question arises as to why it may also not be suitable for method arguments.
Approaches to Optional Arguments
Consider a method with two optional parameters:
public int calculateSomething(Optional<String> p1, Optional<BigDecimal> p2) { // Implementation logic }
Alternative options include:
public int calculateSomething(String p1, BigDecimal p2) { // Null checks added in implementation }
or:
public int calculateSomething() { // Default implementation with null parameters } public int calculateSomething(String p1) { // Implementation with one parameter } public int calculateSomething(BigDecimal p2) { // Implementation with one parameter } public int calculateSomething(String p1, BigDecimal p2) { // Full implementation }
Arguments Against Using Optional Arguments
Some argue against using Optional arguments due to:
Benefits of Using Optional Arguments
However, there are also benefits to using Optional arguments:
Conclusion
Ultimately, the decision of whether or not to use Optional arguments depends on the specific context and preferences of the development team. While guidelines recommend using Optional only for return types, it can be a practical and effective choice for method arguments in certain scenarios where semantic clarity and unified handling are desired. It is important to carefully consider the benefits and drawbacks before deciding on an approach.
The above is the detailed content of Should Java 8's Optional Be Used for Method Arguments?. For more information, please follow other related articles on the PHP Chinese website!