package com.sf._01_泛型.demo;

public class AUtil {


    public <T> T  method1(T a){
        return a;
    }
    /**
     * 因为在java 当中能够进行+- 运算只有  int  byte  shorg  Int  lonteger  Byte Short Long
     * E 属于泛型 -> 表示任意类型包含对象  基本数据类   包装类型
     * 如何解决
     * 可以泛型extends Number  Number 他子类就只有数值类型
     * 如果我们让我们泛型继承Number 我们泛型只能够传int  byte short...
     *
     * Number 这个接口中提供很多方法 intValue  doubleValue  longValu
     * a Integer  Double
     * 返回  int  double   long  float  数值
     */
    public static<E extends Number> Number add(E a,E b){
        // 判断他类型如果int 做int 相加 如果double 就做double 返回double
        if(a instanceof Integer && b instanceof Integer){
            return a.intValue() + b.intValue();
        }else if(a instanceof Double && b instanceof Double){
            return a.doubleValue() + b.doubleValue();
        }
        return -1;
    }
}
