commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Matt Benson (JIRA)" <>
Subject [jira] [Commented] (COLLECTIONS-461) splitmap.TransformedMap is not really a Map
Date Mon, 13 May 2013 23:53:16 GMT


Matt Benson commented on COLLECTIONS-461:

I'm still not connecting the dots as to how the "real" Maps are compromised.  {{TransformedMap}}
isn't a {{Map}}.  It's not intended to be plugged in as one.  Rather, if you need to be agnostic
to whether you have a {{Map}} or a {{Put}} and a {{Get}}, you can program to the {{Put}}/{{Get}}
APIs and use any of the {{IterableMap}} impls provided by {{\[collections\]}} to implement
these as well.  By extending {{Map}} and {{Put}}, {{IterableMap}} forces the RT of {{#put()}}
to be narrowed to {{V}}.
> splitmap.TransformedMap is not really a Map
> -------------------------------------------
>                 Key: COLLECTIONS-461
>                 URL:
>             Project: Commons Collections
>          Issue Type: Bug
>            Reporter: Sebb
>             Fix For: 4.x
> splitmap.TransformedMap is part of the Get/Put hierarchy, but it does not behave like
a proper Java Map. 
> In particular, java.util.Map.put(K, V) returns V.
> However the collections Put interface returns Object.
> As far as I can tell, this was done in order to be able to include TransformedMap in
the hiearchy. But the side effect is to break the generics for all the non-transformer maps
in the hierarchy.
> Maybe there should be a separate PutTransformed interface which has the appropriate generic
types, i.e.
> public T put(K key, V value)

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:

View raw message