[ 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)