freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

java泛型-java參數(shù)化類型(編輯修改稿)

2024-09-14 16:23 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 當(dāng)前看到的這個(gè)寫法是可以編譯通過,并運(yùn)行成功。可是注釋掉的兩行加上就出錯(cuò)了,因?yàn)門 extends Collection這么定義類型的時(shí)候,就限定了構(gòu)造此類實(shí)例的時(shí)候T是確定的一個(gè)類型,這個(gè)類型實(shí)現(xiàn)了Collection接口,但是實(shí)現(xiàn) Collection接口的類很多很多,如果針對(duì)每一種都要寫出具體的子類類型,那也太麻煩了,我干脆還不如用Object通用一下。別急,泛型針對(duì)這種情況還有更好的解決方案,那就是“通配符泛型”。 通配符泛型 為了解決類型被限制死了不能動(dòng)態(tài)根據(jù)實(shí)例來確定的缺點(diǎn),引入了“通配符泛型”,針對(duì)上面的例子,使用通配泛型格式為? extends Collection,“?”代表未知類型,這個(gè)類型是實(shí)現(xiàn)Collection接口。那么上面實(shí)現(xiàn)的方式可以寫為: 查看復(fù)制到剪切板打印1. publicclassCollectionGenFooDemo{ 2. publicstaticvoidmain(Stringargs[]){ 3. CollectionGenFooArrayListlistFoo=null。 4. listFoo=newCollectionGenFooArrayList(newArrayList())。 5. 6. //現(xiàn)在不會(huì)出錯(cuò)了 7. CollectionGenFoo?extendsCollectionlistFoo1=null。 8. listFoo=newCollectionGenFooArrayList(newArrayList())。 9. 10. (實(shí)例化成功!)。 11. } 12. }public class CollectionGenFooDemo { public static void main(String args[]) { CollectionGenFooArrayList listFoo = null。 listFoo = new CollectionGenFooArrayList(new ArrayList())。 //現(xiàn)在不會(huì)出錯(cuò)了 CollectionGenFoo? extends Collection listFoo1 = null。 listFoo=new CollectionGenFooArrayList(new ArrayList())。 (實(shí)例化成功!)。 }}注意: 如果只指定了?,而沒有extends,則默認(rèn)是允許Object及其下的任何Java類了。也就是任意類。 通配符泛型不單可以向下限制,如? extends Collection,還可以向上限制,如? super Double,表示類型只能接受Double及其上層父類類型,如Number、Object類型的實(shí)例。 泛型類定義可以有多個(gè)泛型參數(shù),中間用逗號(hào)隔開,還可以定義泛型接口,泛型方法。這些都泛型類中泛型的使用規(guī)則類似。 三、泛型的綜合運(yùn)用實(shí)例(代碼參考java參考大全,有改動(dòng)) 查看復(fù)制到剪切板打印1. publicclassAvgGenTextendsNumber{ 2. publicAvgGen(){ 3. } 4. 5. publicdoublegetAvg(T[]arr){ 6. doublesum= 7. for(inti=0。ii++){ 8. sum=sum+arr[i].doubleValue()。 9. } 10. returnsum/ 11. } 12. 13. publicstaticvoidmain(String[]args){ 14. //整形數(shù)組求均值 15. (整形數(shù)組{1,3}求均值:)。 16. Integer[]intArr={1,3}。 17. AvgGenIntegerintObj=newAvgGenInteger()。 18. doubleintavg=(intArr)。 19. (intavg)。 20. ()。 21. //浮點(diǎn)型數(shù)組求均值 22. (浮點(diǎn)型數(shù)組{,}求均值:)。 23. Float[]fArr={,}。 24. AvgGenFloatfObj=newAvgGenFloat()。 25. doublefavg=(fArr)。 26. (favg)。 27. } 28. } 29. 30. /** 31. *CreatedbyIntelliJIDEA.User:leizhiminDate:2007918Time:11:08:14使用通配符泛型參數(shù):泛型參數(shù)是可變的,可在運(yùn)行時(shí)來確定。 32. */33. publicclassAvgCompGenTextendsNumber{ 34. privateT[]arr。 35. 36. /** 37. *構(gòu)造函數(shù) 38. * 39. *@paramarr 40. */41. publicAvgCompGen(T[]arr){ 42. =arr。 43. } 44. 45. /** 46. *求數(shù)組均值 47. * 48. *@return數(shù)組均值 49. */50. publicdoublegetAvg(){ 51. doublesum= 52. for(inti=0。ii++){ 53. sum+=arr[i].doubleValue()。 54. } 55. returnsum/ 56. } 57. 58. /** 59. *比較數(shù)組均值是否相等(使用通配符泛型參數(shù))AvgCompGen?表示可以匹配任意的AvgCompGen對(duì)象,有點(diǎn)類似Object 60. * 61. *@paramx目標(biāo)對(duì)象 62. *@return均值是否相等 63. */64. publicbooleansameAvg(AvgCompGen?x){ 65. if(getAvg()==()) 66. returntrue。 67. returnfalse。 68. } 69. 70. /** 71. *主函數(shù):用來測(cè)試 72. * 73. *@paramargs 74. */75. publicstaticvoidmain(String[]args){ 76. //創(chuàng)建參數(shù)為Integer類型泛型對(duì)象 77. Integer[]intArr={1,3}。 78. AvgCompGenIntegerintObj=newAvgCompGenInteger(intArr)。 79. (intObj的平均值=+())。 80. //創(chuàng)建參數(shù)為Double類型泛型對(duì)象 81. Double[]douArr={,}。 82. AvgCompGenDoubledouObj=newAvgCompGenDouble(douArr)。 83. (douObj的平均值=+())。 84. //創(chuàng)建參數(shù)為Float類型泛型對(duì)象 85. Float[]fltArr={,}。 86. AvgCompGenFloatfltObj=newAvgCompGenFloat(fltArr)。 87. (fltObj的平均值=+())。 88. //兩兩比較對(duì)象的均值是否相等 89. if((douObj)) 90. (intArr與douArr的值相等,結(jié)果為:+intObj的均值=+() 91. +douObj的均值=+())。 92. else93. (intArr與douArr的值不相等,結(jié)果為:+intObj的均值=+() 94. +douObj的均值=+())。 95. if((fltObj)) 96. (intArr與fltObj的值相等,結(jié)果為:+intObj的均值=+() 97. +fltObj的均值=+())。 98. else99. (intArr與fltObj的值不相等,結(jié)果為:+intObj的均值=+() 100. +fltObj的均值=+())。 101. if((fltObj)) 102. (douObj與fltObj的值相等,結(jié)果為:+douObj的均值=+() 103. +fltObj的均值=+())。 104. else105. (douObj與fltObj的值不相等,結(jié)果為:+douObj的均值=+() 106. +fltObj的均值=+())。 107. } 108. } 109. 110. /** 111. *CreatedbyIntelliJIDEA.User:leizhiminDate:2007918Time:16:09:37三種坐標(biāo),用泛型實(shí)現(xiàn)坐標(biāo)打印 160
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1