一个关于反省的问题。。


/**
 * @author myl
 * @param  代返回数据 的 数据类型
 */
@JsonInclude(value = JsonInclude.Include.NON_NULL)
public class ResultVo {

    private Integer status_code;
//    Integerint的包装类,int则是java的一种基本数据类型
//    2Integer变量必须实例化后才能使用,而int变量不需要
//    3Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值
    private String msg;
    private T data;

问一个小问题,这里的T应该怎么理解呢?
这里的T是一个泛型,但是是什么样的泛型呢?

首先吐槽一下,CSDN问答频道已经被chatGPT占领。
T是一个泛型,通俗理解就是,可以指代任何类型。ResultVo<T>,看这个定义就知道是用于controller接口层返回数据给前端。比如,返回用户信息,可以返回ResultVo<User>;返回用户列表信息,可以返回ResultVo<List<User>>;返回订单信息,可以返回ResultVo<Order>
前端拿到泛型data后,就可以进行相应的解析和数据渲染

方案来自 梦想橡皮擦 狂飙组基于 GPT 编写的 “程秘”

T 是一个类型参数,它的实际类型在调用时才会确定。意思是说,当这个类被实例化时,你可以指定T所代表的具体类型。例如:

ResultVo resultVo = new ResultVo();

这里,T被实例化为String类型。这样,在实例化的类中,所有使用到T的地方都将变成String类型。在这个例子中,data就是一个String类型的变量。

以下答案引用自GPT-3大模型,请合理使用:

示例。

T代表的是数据类型,举个例子,如果这个类是ResultVo<Integer>,那么T就代表了整数类型,如果是ResultVo<String>,那么T就代表了字符串类型。