Revisiting primitives in generics: This can *NOT* be delayed for later.

Florian Weimer fweimer at bfk.de
Mon Jul 19 06:58:37 PDT 2010


* John Nilsson:

> I'm note sure I understand why this is a problem. But if it is, why
> not fix it?
>
> So I understand it correct that there is no runtime lookup for a
> compatible method (supertype of DoubleComparator)? If so, why not add
> this to the runtime?

This would work.  However, you still break backwards compatibility (at
the source level, not the binary level) when a user has defined
methods like this:

    void perform(Ops.DoubleComparator);
    void perform(Comparator<Double>);

, assuming that Comparator<Double> and Comparator<double> have the
same erasure (at least at the Java level).

Retrofitting a class to implement an interface is only safe if the
interface is new.

-- 
Florian Weimer                <fweimer at bfk.de>
BFK edv-consulting GmbH       http://www.bfk.de/
Kriegsstraße 100              tel: +49-721-96201-1
D-76133 Karlsruhe             fax: +49-721-96201-99


More information about the lambda-dev mailing list