[
https://issues.apache.org/jira/browse/COLLECTIONS-461?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13656547#comment-13656547
]
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: https://issues.apache.org/jira/browse/COLLECTIONS-461
> 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: http://www.atlassian.com/software/jira