第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Java泛型-橋接方法?

Java泛型-橋接方法?

幕布斯6054654 2019-10-08 15:31:35
與Java泛型相關(guān)的稱為“橋接方法”的概念使我停下來思考一下。順便說一句,我只知道它發(fā)生在字節(jié)碼級(jí)別,我們無法使用。但是我很想知道Java編譯器使用的“橋接方法”背后的概念。幕后到底發(fā)生了什么,為什么要使用它?任何有關(guān)示例的幫助將不勝感激。
查看完整描述

3 回答

?
長風(fēng)秋雁

TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超7個(gè)贊

如果您想了解為什么需要橋接方法,則最好了解沒有它的情況。假設(shè)沒有橋接方法。


class A<T>{

  private T value;

  public void set(T newVal){

    value=newVal

  }

}


class B extends A<String>{

  public void set(String newVal){

    System.out.println(newVal);

    super.set(newVal);

  }

}

請注意,擦除后,由于Type參數(shù)不受限制,因此setin中的方法A成為了。有類沒有方法的簽名,其中相同的。因此沒有覆蓋。因此,當(dāng)發(fā)生這種情況時(shí):public void set(Object newVal)TBsetA


A a=new B();

a.set("Hello World!");

多態(tài)在這里不起作用。請記住,您需要在子類中重寫父類的方法,以便可以使用父類var觸發(fā)多態(tài)。


橋方法的作用是用名稱相同但簽名不同的方法的所有信息以靜默方式覆蓋父類中的方法。借助于橋接方法,多態(tài)性起作用了。盡管從表面上看,您可以使用具有不同簽名的方法覆蓋父類方法。


查看完整回答
反對 回復(fù) 2019-10-08
?
茅侃侃

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超22個(gè)贊

令人驚訝的是,編譯器會(huì)推斷出該MyComparator方法:


public int compare(Integer a, Integer b) {/* code */}

正在嘗試覆蓋Comparator<T>的


public int compare(T a, T b);

從聲明的類型Comparator<Integer>。否則,編譯器會(huì)將MyComparators compare作為附加(重載)方法,而不是覆蓋該方法。因此,將不會(huì)為此創(chuàng)建橋方法。


查看完整回答
反對 回復(fù) 2019-10-08
  • 3 回答
  • 0 關(guān)注
  • 696 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)