1巷蚪、
應(yīng)用泛型分兩類:
直接用:List<String> s = new ArrayList<String>();
擴(kuò)展應(yīng)用:
這樣一來(lái),UserDao具備了BaseDao的所有方法濒翻,并且這些方法中帶泛型約束類的地方全部變成了User屁柏,使用的時(shí)候,UserDao那里不必再加泛形:
有送。淌喻。。雀摘。裸删。。阵赠。涯塔。。清蚀。匕荸。。枷邪。榛搔。。东揣。药薯。。救斑。童本。。脸候。穷娱。绑蔫。。泵额。配深。。嫁盲。篓叶。。羞秤。缸托。。瘾蛋。俐镐。。哺哼。佩抹。
以上是接口的繼承應(yīng)用,下面是接口擴(kuò)展定義中的泛型
取董。棍苹。。茵汰。枢里。。经窖。。梭灿。画侣。。堡妒。配乱。。皮迟。搬泥。。伏尼。忿檩。。爆阶。燥透。沙咏。。班套。肢藐。。吱韭。吆豹。。理盆。痘煤。。熏挎。速勇。。坎拐。烦磁。。
如果采取接口擴(kuò)展泛型哼勇,類似于List<E>擴(kuò)展Collection<E>:
那么實(shí)現(xiàn)類也變成:
兩種方式也沒(méi)有本質(zhì)區(qū)別都伪,只是泛型約束類使用前后不同。
但是第二種用到userdao實(shí)現(xiàn)類的時(shí)候要這樣寫:
UserDao<User>? userDao = new UserDaoImpl();
或者:UserDaoImpl ??userDao = new UserDaoImpl();
而且可以發(fā)現(xiàn):這里用UserDaoImpl沒(méi)有泛型积担,是因?yàn)槠涠x的時(shí)候就沒(méi)加而是直接繼承和實(shí)現(xiàn)的:
BasicDaoImpl<User>? ? UserDao<User>
原則是本類定義時(shí)候加泛型陨晶,用的時(shí)候就得加泛型。
帝璧。先誉。。的烁。褐耳。。渴庆。铃芦。。襟雷。刃滓。。耸弄。咧虎。。计呈。老客。僚饭。。胧砰。鳍鸵。。尉间。偿乖。。哲嘲。贪薪。。眠副。画切。。囱怕。霍弹。。娃弓。典格。。台丛。耍缴。。挽霉。防嗡。。
javaAPI的應(yīng)用中有:泛型應(yīng)用在接口擴(kuò)展定義: