偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

詳解Java泛型之(四)一個例子理解泛型帶來的好處

開發(fā) 后端
今天我設(shè)計(jì)一個實(shí)例,分別通過重載、Object類型參數(shù)以及泛型三種方式來實(shí)現(xiàn)這個實(shí)例,讓大家清楚地體會到使用泛型技術(shù)給我們帶來的好處!

今天我設(shè)計(jì)一個實(shí)例,分別通過重載、Object類型參數(shù)以及泛型三種方式來實(shí)現(xiàn)這個實(shí)例,讓大家清楚地體會到使用泛型技術(shù)給我們帶來的好處!

實(shí)例需求

有這樣一個需求,自己寫一個方法能夠比較兩個數(shù)值的大小,如果相等返回true,否則返回false。

通過重載實(shí)現(xiàn)

分析:因?yàn)樵趈ava中,常用數(shù)值包括Integer、Float、Double、Long我們可以利用重載的知識(同名不同參)設(shè)計(jì)四個方法來實(shí)現(xiàn)

  1. public static boolean equal(Integer a,Integer b) { 
  2.       if (a.equals(b)) 
  3.         return true
  4.       else 
  5.         return false
  6.    } 
  7.    public static boolean equal(Double a,Double b) { 
  8.       if (a.equals(b)) 
  9.         return true
  10.       else 
  11.         return false
  12.    } 
  13.    public static boolean equal(Float a,Float b) { 
  14.       if (a.equals(b)) 
  15.         return true
  16.       else 
  17.         return false
  18.    } 

通過Object類型參數(shù)實(shí)現(xiàn)

很顯然像上面這樣的設(shè)計(jì)稍微有些麻煩,我們可以利用Object作為參數(shù),通過一個方法就實(shí)現(xiàn)該需求,代碼如下:

  1. public static boolean equal(Object a,Object b) { 
  2.       if (a.equals(b)) 
  3.         return true
  4.       else 
  5.         return false
  6.    } 

通過泛型實(shí)現(xiàn)

但是像上面這樣設(shè)計(jì)仍然有一個問題,因?yàn)閰?shù)是Object,所以可以實(shí)現(xiàn)equal(123,“abc”) 的比較,這與題目要求不符!題目要求是——比較兩個數(shù)值的大小,而abc的類型是String。這個時候我們就可以通過泛型的知識來解決該問題了,我們看Integer、Float、Double、Long的源碼發(fā)現(xiàn),他們都繼承了抽象類Number,于是我們可以使用泛型的邊界值的知識點(diǎn)解決該問題,代碼如下:

很顯然通過泛型的方式實(shí)現(xiàn),不僅讓代碼量減少了很多,還很容易地控制了參數(shù)的傳入范圍!

 

責(zé)任編輯:姜華 來源: 今日頭條
相關(guān)推薦

2021-07-01 06:47:30

Java泛型泛型擦除

2017-11-14 14:41:11

Java泛型IO

2021-06-18 08:25:42

Java泛型通配符

2021-06-17 06:51:32

Java泛型Java編程

2009-06-16 11:32:00

Java泛型

2009-06-11 17:31:27

Java泛型

2011-03-21 16:26:28

java泛型

2024-10-28 00:40:49

Go語法版本

2011-04-13 09:16:55

泛型

2009-03-17 16:22:13

Java泛型接口

2021-09-29 18:17:30

Go泛型語言

2009-08-24 10:29:39

C# 泛型

2024-04-23 08:23:36

TypeScript泛型Generics

2024-10-22 16:59:07

2009-09-25 10:03:51

Java泛型

2009-07-30 14:00:21

ASP.NET 2.0

2011-07-10 13:45:35

JAVA泛型

2024-11-05 09:11:09

TypeScript開發(fā)者代碼

2017-03-06 16:51:52

Java泛型實(shí)現(xiàn)

2021-12-30 19:34:15

Java泛型JDK
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號