Java中的泛型是通過(guò)類型擦除實(shí)現(xiàn)的,在編譯時(shí)练链,所有的泛型類型參數(shù)會(huì)被替換為它們的非泛型上界
例如:
List<T>/**編譯后**/List<Object> List<T extends Number>/*編譯后*/List<Number>
簡(jiǎn)單來(lái)說(shuō)Java 中的泛型設(shè)計(jì)是為了適配其面向?qū)ο蟮哪P汀K蟹腔绢愋偷臄?shù)據(jù)(類、接口等)都被視為對(duì)象暖侨,因此泛型也是為對(duì)象設(shè)計(jì)的冬念。
所以編譯時(shí)如果沒(méi)有指定上界趁窃,通常會(huì)被替換為 Object,基本數(shù)據(jù)類型不是對(duì)象急前,而是 Java 提供的原始類型醒陆,不能直接用于泛型。