qq463524785 2021-07-19 17:05 采纳率: 0%
浏览 114
已结题

如何返回范型类型呢?


public class Test {
    public static void main(String[] args) {
        Class<?> aliyun = ResType.of("aliyun").getType();
        try {
            Object obj = aliyun.newInstance();

        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
    }
}
class TencentData {
    private String id;
}

class AliyunData {
    private String id;
}

class Response<T> {
    private T date;

    public T getDate() {
        return date;
    }

    public void setDate(T date) {
        this.date = date;
    }
}

interface Convert {
    Class<?> getType();
}

enum ResType implements Convert {
    ALIYUN("aliyun") {
        @Override
        public Class<?> getType() {
            return Response<AliyunData>.class; //这句报错 ,怎么返回?
        }
    },
    TENCENT("tencent") {
        @Override
        public Class<?> getType() {
            return Response<TencentData>.class; //这句报错,怎么返回?
        }
    };
    private final String depict;

    ResType(String depict) {
        this.depict = depict;
    }

    public String getDepict() {
        return depict;
    }

    public static ResType of(String depict) {
        for (ResType temp : ResType.values()) {
            if (temp.getDepict().equals(depict)) {
                return temp;
            }
        }
        return null;
    }
}

我需要返回Response的具体类型带着范型的,我该如何操作?
我需要的是类型,不需要实例。
这个只是demo,实际业务比这个复杂点,还有我不想绕过这个知识点从其它途径完成功能。

  • 写回答

5条回答 默认 最新

  • 得一以生 2021-07-19 17:11
    关注

    public static ResponseDTO of(T data) {
    ResponseDTO responseDTO = new ResponseDTO<>();
    responseDTO.setData(data);
    return responseDTO;
    }

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月19日
  • 修改了问题 7月19日
  • 修改了问题 7月19日
  • 修改了问题 7月19日
  • 展开全部

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog