You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Eric Milles (Jira)" <ji...@apache.org> on 2021/09/13 14:26:00 UTC
[jira] [Commented] (GROOVY-10223) Add support for Optional to
DefaultTypeTransformation.asCollection()
[ https://issues.apache.org/jira/browse/GROOVY-10223?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17414234#comment-17414234 ]
Eric Milles commented on GROOVY-10223:
--------------------------------------
Support for {{Stream}} converted to array or collection on assignment was added to Groovy 4, so you could do this:
{code:groovy}
Object[] array = ((Optional) value).stream()
List list = ((Optional) value).stream()
{code}
> Add support for Optional to DefaultTypeTransformation.asCollection()
> --------------------------------------------------------------------
>
> Key: GROOVY-10223
> URL: https://issues.apache.org/jira/browse/GROOVY-10223
> Project: Groovy
> Issue Type: New Feature
> Components: groovy-jdk
> Reporter: Stephen Smith
> Priority: Trivial
> Labels: features
>
> The JDK recently added support for *Optional::stream()* which returns a stream containing either the unwrapped value or an empty stream if the *Optional* is empty.
> In the groovy-jdk, using iteration however will call
> {noformat}
> DefaultTypeTransformation.asCollection(){noformat}
> which does not specifically check for type *Optional*, instead it will just wrap the *Optional* itself in a *List* rather than the unwrapped value as the default behavior.
> Adding an _if else_ clause will allow using the Optional as either a single or empty list.
> {code:java}
> if (value instanceOf Optional) {
> return ((Optional)value).map(List::of).orElse(List.of()
> }{code}
> Alternatively, add an *asList()* to the Optional class.
>
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)