[
https://issues.apache.org/jira/browse/HBASE-23093?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16948388#comment-16948388
]
Viraj Jasani commented on HBASE-23093:
--------------------------------------
Based on the conversation on github PR, it seems we are agreeing to pass
Optional<> as argument for some places where we retrieve Optional<> as return
value from a method and then quickly pass it over as argument to another.
Hence, compile time rule to prevent passing Optional<> as argument(HBASE-23127)
might not be required.
[~stack] [~zhangduo]
> Avoid Optional Anti-Patterns
> ----------------------------
>
> Key: HBASE-23093
> URL: https://issues.apache.org/jira/browse/HBASE-23093
> Project: HBase
> Issue Type: Improvement
> Affects Versions: 3.0.0, 2.3.0, 1.6.0
> Reporter: Viraj Jasani
> Assignee: Viraj Jasani
> Priority: Minor
> Fix For: 3.0.0, 2.3.0, 1.6.0
>
>
> Optional should be used as a return type only. It's a neat solution for
> handling data that might not be present. We should avoid using Optional
> Anti-Patterns i.e. using it as a field or parameter type due to these reasons:
> 1. Using Optional parameters causing conditional logic inside the methods is
> not productive.
> 2. Packing an argument in an Optional is suboptimal for the compiler and does
> an unnecessary wrapping.
> 3. Optional field is not serializable.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)