Effective_Java_2 Reloaded

Effective_Java_2 Reloaded

ID:40602918

大小:408.32 KB

页数:45页

时间:2019-08-04

Effective_Java_2 Reloaded_第1页
Effective_Java_2 Reloaded_第2页
Effective_Java_2 Reloaded_第3页
Effective_Java_2 Reloaded_第4页
Effective_Java_2 Reloaded_第5页
资源描述:

《Effective_Java_2 Reloaded》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、EffectiveJava™ReloadedJoshuaBlochChiefJavaArchitectGoogleInc.Session15122006JavaOneSMConference

2、SessionTS-1512

3、DisclaimerEffectiveJava™Hasn’tYetBeenReloaded,butIHavePlentyofAmmunitionIhavelotsoffinenewmaterialonmakingeffectiveuseofnewplatformfeatures,andI’dliketosharesomeofitwithyou

4、2006JavaOneSMConference

5、SessionTS-1512

6、2MenuAppetizer:ObjectCreationMainCourse:GenericsDessert:AssortedSweets2006JavaOneSMConference

7、SessionTS-1512

8、3MenuAppetizer:ObjectCreationMainCourse:GenericsDessert:AssortedSweets2006JavaOneSMConference

9、SessionTS-1512

10、41.StaticFactoriesHaveAdva

11、ntagesOverConstructors(OldNews)•Neednotcreateanewobjectoneachcall•Theyhavenames•Allowsmultiplefactorieswithsametypesignature•Flexibilitytoreturnobjectofanysubtype•Butwait!There’smore…2006JavaOneSMConference

12、SessionTS-1512

13、5NewStaticFactoryAdvantage:TheyDoTypeInference•WhichLooksBett

14、er?•Map>m=newHashMap>();•Map>m=HashMap.newInstance();•RegrettablyHashMaphasnosuchmethod(yet)•Untilitdoes,youcanwriteyourownutilityclass•Yourgenericclassescanandshould2006JavaOneSMConference

15、SessionTS-1512

16、62.StaticFactories

17、andConstructorsShareaProblem•Uglywhentheyhavemanyoptionalparameters•newNutritionFacts(Stringname,intservingSize,intservingsPerCntnr,inttotalFat,intsaturatedFat,inttransFat,intcholesterol,15moreoptionalparams!);•Telescopingsignaturepatternisahackn•Butyoucan’tprovideall2possibilities•

18、Beans-stylesettersarenottheanswer!•Theyprecludeimmutableclasses2006JavaOneSMConference

19、SessionTS-1512

20、7TheSolution:BuilderPattern•Builderconstructortakesallrequiredparams•Onesetterforeachoptionalparameter•Settersreturnthebuildertoallowforchaining•Onemethodtogenerateinstance•Patterne

21、mulatesnamedoptionalparameters!NutritionFactstwoLiterDietCoke=newNutritionFacts.Builder("DietCoke",240,8).sodium(1).build();2006JavaOneSMConference

22、SessionTS-1512

23、8BuilderExamplepublicclassNutritionFacts{publicclassBuilder{publicBuilder(Stringname,intservingSize,intservingsPerContai

24、ner){...}publicBuil

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。