一、什麼是橋接方法
在介紹橋接方法之前,我先介紹下泛型。在 JDK1.5 中引入了泛型,泛型類型是基於原始類型、類型擦除原理進行實現的。
原始類型
Java總是會自動的爲泛型類型提供一個相應的原始類型。所謂原始類型就是是指泛型的第一個限定類型(從左向右),無限定類型泛型的原始類型默認爲Object。
類型擦除
Java中泛型的實現原理是類型擦除(type erasure)。類型擦除是在編譯器進行代碼編譯這個階段進行的,在編譯的時候泛型的類型參數會被原始類型(raw type)所替代。
進入正題,給出橋接方法的定義。橋接方法是在父類、子類的繼承場景中出現的。父類是泛型類,且在該類中存在泛型方法。子類繼承父類,並實現泛型方法。如果在子類實現中不包含父類經過類型擦除後生成的原始類型方法,則編譯器會自動將該原始類型方法添加到子類中。這個被添加的原始類型方法我們稱之爲橋接方法。
二、橋接示例
1、定義泛型基類 Base
:
public interface Base<T> {
/**
*
* @param t
*/
void