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:[email protected]]
Sent: Tuesday, April 28, 2015 2:45 PM
To: [email protected]
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 
<[email protected]<mailto:[email protected]>> 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.

Reply via email to