[ 
https://issues.apache.org/jira/browse/JDO-751?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15144996#comment-15144996
 ] 

Tilmann Zäschke commented on JDO-751:
-------------------------------------

Just to repeat what was send at the end of the telecon: I favour the dual way 
of allowing both {{postcode!=null}} and {{postcode.isPresent()}} in JDOQL. The 
problem is that this can cause collision if the object referenced by the 
{{Optional}} has the same method names as {{Optional}}. Currently, the only 
problem occurs if the with {{Optional<List>}} because {{List}} also has a get 
method, although with a different signature.

The problem is that, if we allow {{Optional}} methods and at the same time 
allow the short-cut with auto-dereferencing then we may get into trouble in 
future. If we ever think about admitting method calls on domain objects, then 
these could conflict with the methods of {{Optional}}. Similarily, we would be 
in trouble if Java ever decides to add a {{isPresent()}} method to {{List}} or 
{{Map}} (for whatever reason).

Fun question (not a likely use-case): How do we treat 
{{Optional<Optional<Department>>}} where department is null? Should JDOQL do 
double-auto-dereferencing?

> Support for Java8 Optional
> --------------------------
>
>                 Key: JDO-751
>                 URL: https://issues.apache.org/jira/browse/JDO-751
>             Project: JDO
>          Issue Type: New Feature
>          Components: specification, tck
>            Reporter: Andy Jefferson
>
> java.util.Optional provides a feature that is available in other languages. 
> Since JDO 3.2 will be for Java8+ then it makes sense to add support for this 
> as a "supported persistable type"



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to