groovy-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Winnebeck, Jason" <Jason.Winneb...@windstream.com>
Subject RE: Collection/Map Casting
Date Tue, 28 Apr 2015 19:40:49 GMT
Ok, so that is a shorthand for the collect method. But what about to “cast” a Map? I can’t
use *. operator on maps?

Jason

From: Shil Sinha [mailto:shil.sinha@gmail.com]
Sent: Tuesday, April 28, 2015 2:45 PM
To: users@groovy.incubator.apache.org
Subject: Re: Collection/Map Casting

For your first example, you could do one of the following:

[1,2,3]*.asType(String), which is equivalent to but slower than
[1,2,3]*.toString()

Generally, collection*.asType(ClassYouWant) will yield the element type changes you want,
but you will have to cast the resulting ArrayList to the type of collection you want.

On Tue, Apr 28, 2015 at 2:16 PM, Winnebeck, Jason <Jason.Winnebeck@windstream.com<mailto:Jason.Winnebeck@windstream.com>>
wrote:
Is there an elegant way to cast a collection’s types?

[1,2,3] as List<String> //doesn’t actually work
[1,2,3].collect { it as String } //works but more verbose

[a:1, b:2].collectEntries { k,v -> [k, v as String] } //is there a better way?

The other issue with collectEntries is that the @CompileStatic doesn’t know the type returned,
so you have to actually cast it twice.

Jason
________________________________
This email message and any attachments are for the sole use of the intended recipient(s).
Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the
intended recipient, please contact the sender by reply email and destroy all copies of the
original message and any attachments.

Mime
View raw message