情景复现:
在整合swagger的时候,自己对原本定于的Object的data做了修改,把Object修改为了T,data的set方法的返回类型由于编译器没有报错,就没有去做修改,
这个时候就导致了,项目跑起来,访问swagger-ui的时候出现data一直为Object的情况。而自己接口的数据结构无法展现给前台。而这个问题就是
由于 T 和 Object 的差异性引起的。
(因为自己是新引入swagger的菜鸟,而且自己对T和Object了解不够深入。一直以为自己swagger配置出问题了,排查了很久。)
解决方式:
将data的set方法的返回类型从Object修改为T。
扩展学习:
Object 与 T的差异:
Object范围非常广,而T从一开始就会限定这个类型(包括它可以限定类型为Object)。
Object 是所有类的父类,所以需要强制类型转换。
而T从一开始在编码时(注意是在写代码时)就限定了某种具体类型,所以它不用强制类型转换。
而我对data进行传入的时候,返回类型是Object,这个时候返回给swagger-ui的data数据中就是Object了。