利用Java泛型实现简单的泛型方法


环境:Notpad ++ 6.0 + JDK 6.0.31

问题:编写一个泛型方法add(),当传入不同数字类型的值时,能够进行加法运算,(如可以传入int、long、float、double类型,但要对传入的值做一定的限定,如必须是数字)。

解决:利用泛型编写。

代码:

  1. public class GenericAdd{  
  2.       
  3.     //泛型方法实现两个数相加   
  4.     public <T extends Number> double add(T t1, T t2){  
  5.         double sum = 0.0;  
  6.         sum = t1.doubleValue() + t2.doubleValue();  
  7.         return sum;  
  8.     }  
  9.     public static void main(String[] args){  
  10.         test();  
  11.     }  
  12.       
  13.     public static void test(){  
  14.         GenericAdd addTest = new GenericAdd();//新建GenericAdd类   
  15.           
  16.         int num1 = 3;  
  17.         int num2 = 4;  
  18.         System.out.println("整数和:"+addTest.add(num1, num2));//整数相加   
  19.           
  20.         float num3 = 3.0f;  
  21.         float num4 = 7.0f;  
  22.         System.out.println("浮点数和:"+addTest.add(num3, num4));//浮点数相加   
  23.           
  24.         double num5 = 99.0;  
  25.         double num6 = 1.0;  
  26.         System.out.println("双精度浮点数和:"+addTest.add(num5, num6));//双精度浮点数相加   
  27.           
  28.         long num7 = 300;  
  29.         long num8 = 700;  
  30.         System.out.println("长整数和:"+addTest.add(num7, num8));//长整数相加   
  31.     }  
  32. }  

执行效果:

相关内容