akarnokd at gmail.com
Fri Nov 15 06:24:32 PST 2013
Thanks for the explanations. I'll rename the problematic methods to avoid
2013/11/15 Vicente-Arturo Romero-Zaldivar <vicente.romero at oracle.com>
> On 13/11/13 19:14, Zhong Yu wrote:
>> One thing I find quite worrisome in the new overload resolution - In
>> Java7, applicable methods are "actually" applicable. The "choosing the
>> most specific method" step is guaranteed to chose an actually
>> applicable method.
>> In Java8, that's not the case in a lot of times. Applicable methods
>> may not be actually applicable, and the "most specific" step may
>> choose a method that fails to pass further compilation.
>> This can be quite confusing to the programmer:
>> case 1. javac reports ambiguity because two methods are applicable -
>> while it is very clear to the programmer that one of the method is not
>> actrually applicable.
>> case 2. javac chooses the most specific method, then finds that it is
>> not actually applicable, reports that arguments do not fit the
>> parameter types - while it seems very clear to the programmer that
>> this method should not be a candidate in the first place.
>> Zhong Yu
> If you are referring to the specific case of lambdas what the compiler
> says is that both methods match, not that they are applicable. Probably the
> error message can be clearer.
More information about the lambda-dev