欢迎来到天天文库
浏览记录
ID:51963929
大小:605.00 KB
页数:25页
时间:2020-03-26
《Java语言程序设计10E LiangPPT习题案例19slide.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1Chapter19Generics2ObjectivesToknowthebenefitsofgenerics(§19.1).Tousegenericclassesandinterfaces(§19.2).Todeclaregenericclassesandinterfaces(§19.3).Tounderstandwhygenerictypescanimprovereliabilityandreadability(§19.3).Todeclareandusegenericmethodsandboundedgener
2、ictypes(§19.4).Touserawtypesforbackwardcompatibility(§19.5).Toknowwildcardtypesandunderstandwhytheyarenecessary(§19.6).ToconvertlegacycodeusingJDK1.5generics(§19.7).Tounderstandthatgenerictypeinformationiserasedbythecompilerandallinstancesofagenericclasssharethe
3、sameruntimeclassfile(§19.8).Toknowcertainrestrictionsongenerictypescausedbytypeerasure(§19.8).Todesignandimplementgenericmatrixclasses(§19.9).3WhyDoYouGetaWarning?publicclassShowUncheckedWarning{publicstaticvoidmain(String[]args){java.util.ArrayListlist=newjava.
4、util.ArrayList();list.add("JavaProgramming");}}Tounderstandthecompilewarningonthisline,youneedtolearnJDK1.6generics.4FixtheWarningpublicclassShowUncheckedWarning{publicstaticvoidmain(String[]args){java.util.ArrayListlist=newjava.util.ArrayList();
5、list.add("JavaProgramming");}}Nocompilewarningonthisline.`5WhatisGenerics?Genericsisthecapabilitytoparameterizetypes.Withthiscapability,youcandefineaclassoramethodwithgenerictypesthatcanbesubstitutedusingconcretetypesbythecompiler.Forexample,youmaydefineageneric
6、stackclassthatstorestheelementsofagenerictype.Fromthisgenericclass,youmaycreateastackobjectforholdingstringsandastackobjectforholdingnumbers.Here,stringsandnumbersareconcretetypesthatreplacethegenerictype.6WhyGenerics?Thekeybenefitofgenericsistoenableerrorstobed
7、etectedatcompiletimeratherthanatruntime.Agenericclassormethodpermitsyoutospecifyallowabletypesofobjectsthattheclassormethodmayworkwith.Ifyouattempttousetheclassormethodwithanincompatibleobject,acompileerroroccurs.7GenericTypeGenericInstantiationRuntimeerrorCompi
8、leerrorImprovesreliability8GenericArrayListinJDK1.59NoCastingNeededArrayListlist=newArrayList<>();list.add(5.5);//5.5isautomaticallyconvertedtonewDouble(5.5)l
此文档下载收益归作者所有