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