springboot中,如何将自己封装的返回格式代码段的new改为注入的形式?

发布于 2022-09-12 04:13:35 字数 1043 浏览 23 评论 0

public class ApiReturn<T> {
    private Integer code;
    private String mes;

    public T getData() {
        return data;
    }

    public void setData(T data) {
        this.data = data;
    }

    private T data;

    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public String getMes() {
        return mes;
    }

    public void setMes(String mes) {
        this.mes = mes;
    }
}
@Component
public class ApiReturnComponent<T> {
    /**
     * api返回格式整合
     * @param code
     * @param msg
     * @param data
     * @return ApiReturn
     */
    public ApiReturn returnFormat(Integer code,String msg,T data){
        ApiReturn apiReturn = new ApiReturn();
        apiReturn.setCode(code);
        apiReturn.setMes(msg);
        apiReturn.setData(data);
        return apiReturn;
    }
}

这样代码可以执行,但编辑器有个提示
image.png
怎么写能消除这个提示?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

揪着可爱 2022-09-19 04:13:35

你的ApiReturn类是有泛型的,你new的时候没有传这个。
然后就是这种返回类一般不需要再单独@Component来实例化,直接在ApiReturn类中用静态方法写就是,调用更方便。

夜清冷一曲。 2022-09-19 04:13:35

你都为 ApiReturn 声明了泛型却不用.

这个提示就是让你把泛型信息补全,如果你懒那就返回 ApiRetuen<?>, 但是这样就会让 swagger 之类的工具读取不到 data 的类型.

辞别 2022-09-19 04:13:35

为什么要注入?写成静态方法直接调用啊

小姐丶请自重 2022-09-19 04:13:35

你这个应用场景,应该使用new而不是依赖注入,要不然就是注入一个创建ApiRetuen的工厂,警告信息如同楼上所说,只是因为没有指定泛型参数,改为ApiRetuen<T>即可

    public ApiReturn<T> returnFormat(Integer code,String msg,T data){
        ApiReturn<T> apiReturn = new ApiReturn();
        apiReturn.setCode(code);
        apiReturn.setMes(msg);
        apiReturn.setData(data);
        return apiReturn;
    }
2022-09-19 04:13:35

楼上已经说的很清楚了,问题是因为没有写泛型,楼上给的方案也很好。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文