百布 2022-04-15 13:48 采纳率: 95.8%
浏览 45
已结题

Java用泛型将字符,数值等相加

问题遇到的现象和发生背景

img

问题相关代码,请勿粘贴截图
import java.util.Scanner;

public class oj2078 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            int id = 1;
            String str = sc.next();
            switch (str){
                case "I":
                    GnnericsA<Integer> gg1 = new GnnericsA<>();
                    int num1 = sc.nextInt();
                    int num2 = sc.nextInt();
                    gg1.setT(num1);
                    System.out.println("Case " + id++ + ":整数类,和为" + gg1.sum(num2));
                    break;
                case "S":
                    GnnericsA<String> gg2 = new GnnericsA<>();
                    String str1 = sc.next();
                    String str2 = sc.next();
                    gg2.setT(str1);
                    System.out.println("Case " + id++ + ":字符串类,和为" + gg2.sum(str2));
            }
        }
    }
}

class GnnericsA<T>{
    private T t;
    T tt;


    public void setT(T t){
        this.t = t;
    }

    public T sum(T t1) {
        return this.t + t1 ;
    }
}

运行结果及报错内容

Operator '+' cannot be applied to 'T', 'T'

我想要达到的结果

希望不违背题目要求

  • 写回答

1条回答 默认 最新

  • weixin_42120514 2022-04-15 14:13
    关注

    先判断 t 和 t1的类型
    用 t instanceof Integer 可以判断是否是Integer类型
    t instanceof String 判断是否是String类型

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

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

悬赏问题

  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办