问题:编写一个泛型方法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));//长整数相加
- }
- }
执行效果: