索千 2023-04-06 22:16 采纳率: 74.4%
浏览 11
已结题

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

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

img

img

  • 写回答

2条回答 默认 最新

  • Dummer25 2023-04-06 22:38
    关注
    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}
        }
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月15日
  • 已采纳回答 4月7日
  • 创建了问题 4月6日

悬赏问题

  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号