泛型各种数据在方法里运算,怎么转变运算?

泛型的方法传值相加怎么实现的? 不同数据该怎么分开处理运算?下面该如何实现?

img

img

public class GenericsA<T extends Number> {
    private T t;

    public GenericsA(T t) {
        this.t = t;
    }

    public T sum(T tl) {
        if (t instanceof Double) {
            return (T) Double.valueOf(t.doubleValue() + tl.doubleValue());
        } else if (t instanceof Float) {
            return (T) Float.valueOf(t.floatValue() + tl.floatValue());
        } else if (t instanceof Long) {
            return (T) Long.valueOf(t.longValue() + tl.longValue());
        } else {
            return (T) Integer.valueOf(t.intValue() + tl.intValue());
        }
    }

    @Override
    public String toString() {
        return "GenericsA{" +
                "t=" + t +
                '}';
    }

    public static void main(String[] args) {
        GenericsA<Integer> a = new GenericsA<>(1);
        System.out.println(a.sum(2)); // 输出 3
        System.out.println(a); // 输出 GenericsA{t=1}

        GenericsA<Double> b = new GenericsA<>(1.0);
        System.out.println(b.sum(2.0)); // 输出 3.0
        System.out.println(b); // 输出 GenericsA{t=1.0}
    }
}


不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^