Skip to content

Interface incompatibility in BiVariableMap on Java 8 #858

@headius

Description

@headius

BiVariableMap implements Map<K,V> and an additional method called remove:

public V remove(Object receiver, Object key) {
...
}

However, Java 8 has added an additional [remove signature in Map](http://download.java.net/jdk8/docs/api/java/util/Map.html#remove(java.lang.Object, java.lang.Object))

I'm not sure what all this method is being used for. It has a couple internal uses, but nothing in existing tests, so perhaps it can be renamed for compatibility.

I believe this will not cause existing builds to be broken on Java 8, since anyone compiling against this particular method will have the proper signature embedded in their bytecode, and JVM bytecode can dispatch to methods of the same name and parameter types with different return values.

Copying @yokolet and @bnagy.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions