Shall we expect same behavior for bridge method
Remi Forax
forax at univ-mlv.fr
Thu Sep 19 12:06:16 PDT 2013
On 09/19/2013 08:35 PM, Zhong Yu wrote:
> The test() in Sub does not override the test() in Base; it's rather an overload.
yes,
class Sub extends Base<String> {
...
should fix the issue.
Rémi
>
> On Thu, Sep 19, 2013 at 1:11 PM, Tristan Yan <tristan.yan at oracle.com> wrote:
>> Lambda expression behaves different on bridge method, check the code below, are we implementing such a way on purpose?
>>
>>
>>
>> Consumer<Base> bc = b -> b.test("Hello");
>>
>> Sub sb = new Sub();
>>
>> bc.accept(sb); //call Base class's test
>>
>>
>>
>> sb.test("Hello"); // call Base class's test
>>
>>
>>
>> class Base<T>{
>>
>> public void test(T t){ System.out.println("Base"); }
>>
>> }
>>
>>
>>
>> class Sub<T> extends Base<T>{
>>
>> public void test(String s){ System.out.println("Sub"); }
>>
>> }
>>
>> Tristan Yan(Haibo Yan)
>>
>> Office : 8610-61066212
>>
>> Fax : 8610-61065441
>>
>> Cell : 86-18610696822
>>
>>
>>
>> 2F, Building No. 24, Zhongguancun Software Park
>>
>> Haidian District HYPERLINK "http://people.us.oracle.com/pls/oracle/f?p=8000:6:396067987304343:::6:P6_CITY:Beijing"Beijing , 100193
>>
>> oracle
>>
>>
>>
>>
>>
More information about the lambda-dev
mailing list