環境:Notpad ++ 6.0 + JDK 6.0.31
問題:編寫一個泛型方法add(),當傳入不同數字類型的值時,能夠進行加法運算,(如可以傳入int、long、float、double類型,但要對傳入的值做一定的限定,如必須是數字)。
解決:利用泛型編寫。
代碼:
- public class GenericAdd{
-
- //泛型方法實現兩個數相加
- public <T extends Number> double add(T t1, T t2){
- double sum = 0.0;
- sum = t1.doubleValue() + t2.doubleValue();
- return sum;
- }
- public static void main(String[] args){
- test();
- }
-
- public static void test(){
- GenericAdd addTest = new GenericAdd();//新建GenericAdd類
-
- int num1 = 3;
- int num2 = 4;
- System.out.println("整數和:"+addTest.add(num1, num2));//整數相加
-
- float num3 = 3.0f;
- float num4 = 7.0f;
- System.out.println("浮點數和:"+addTest.add(num3, num4));//浮點數相加
-
- double num5 = 99.0;
- double num6 = 1.0;
- System.out.println("雙精度浮點數和:"+addTest.add(num5, num6));//雙精度浮點數相加
-
- long num7 = 300;
- long num8 = 700;
- System.out.println("長整數和:"+addTest.add(num7, num8));//長整數相加
- }
- }
執行效果: