springboot中,如何将自己封装的返回格式代码段的new改为注入的形式?
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;
}
}
这样代码可以执行,但编辑器有个提示
怎么写能消除这个提示?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
你的
ApiReturn
类是有泛型的,你new
的时候没有传这个。然后就是这种返回类一般不需要再单独
@Component
来实例化,直接在ApiReturn
类中用静态方法写就是,调用更方便。你都为
ApiReturn
声明了泛型却不用.这个提示就是让你把泛型信息补全,如果你懒那就返回
ApiRetuen<?>
, 但是这样就会让 swagger 之类的工具读取不到data
的类型.为什么要注入?写成静态方法直接调用啊
你这个应用场景,应该使用new而不是依赖注入,要不然就是注入一个创建
ApiRetuen
的工厂,警告信息如同楼上所说,只是因为没有指定泛型参数,改为ApiRetuen<T>即可楼上已经说的很清楚了,问题是因为没有写泛型,楼上给的方案也很好。