I will forward a portion of this email to the OpenJDK folks and see what
they think about compatibility options.


On Wed, Nov 13, 2013 at 3:49 PM, Thomas Neidhart
<thomas.neidh...@gmail.com>wrote:

> Hi,
>
> during the vote for collections 4.0 we have discovered a problem wrt the
> MultiMap interface in general and specifically the MultiKeyMap.
>
> Java 8 introduces a new default method in the Map interface:
>
>  boolean remove(Object key, Object value)
>
> This clashes with the method in MultiMap:
>
>  V remove(K key, V value)
>
> and the remove methods for multiple keys in MultiKeyMap:
>
>  V remove(K key1, K key2)
>
>
> Just changing the return type does not solve the problem, as one can not
> re-define a method in an interface without using the @Override
> annotation, but this would only work when compiling with JDK 8 and fail
> for other JDKs.
>
> For the MultiKeyMap it would be semantically wrong too, thus I propose a
> name change.
>
> For MultiMap:
>
>  boolean removeMapping(K key, V value)
>
> For MultiKeyMap (for all remove(K ...) methods):
>
>  V removeMultiKey(K key1, K key2)
>  V removeMultiKey(K key1, K key2, K key3)
>  ...
>
>
> In the case of the MultiMap, I think returning a boolean makes more
> sense, similar as Java 8 does it.
>
> For the MultiKeyMap, returning the previously mapped value is preferable
> imho.
>
> Any objections?
>
> Thomas
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>
>


-- 
Cheers,
Paul

Reply via email to