• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Freeego
V2EX  ›  程序员

Java 后端返回的 data 类型应该用泛型还是 Object?

  •  
  •   Freeego · Jan 8, 2020 · 4582 views
    This topic created in 2501 days ago, the information mentioned may be changed or developed.

    以下哪种合适:

      public class CommenResult<T> {
          private int code;
          private String message;
          private T data;
          ...
      }
    

    还是

      public class CommenResult {
          private int code;
          private String message;
          private Object data;
          ...
      }
    
    14 replies  •  2020-01-08 19:07:03 +08:00
    Akimizu1994
    Akimizu1994
    Jan 8, 2020
    1
    泛型吧,至少别人一看接口定义就知道你返回的是个啥
    zhouquan03
    zhouquan03
    Jan 8, 2020
    2
    范型。接口一定要明确类型,object 不合适。
    chenuu
    chenuu
    Jan 8, 2020
    3
    之前没有考虑泛型,实际应用上选的 Object.现在看更倾向于泛型
    avk458
    avk458
    Jan 8, 2020
    4
    1. 泛型的作用是在编译期;
    2. 通用返回类还需要泛型感觉多此一举;
    3. common
    Freeego
    Freeego
    OP
    Jan 8, 2020
    5
    @avk458 盲生你发现了华点
    opengps
    opengps
    Jan 8, 2020
    6
    我选第二种
    wysnylc
    wysnylc
    Jan 8, 2020
    7
    选泛型没法初始化 data,而响应结果需要一个默认的值,所以我选 Object
    BBCCBB
    BBCCBB
    Jan 8, 2020
    8
    泛型. 方法一眼就能看到返回了啥类型.
    chendy
    chendy
    Jan 8, 2020
    9
    两种写法最终效果一样,但是用泛型的话,看方法声明就知道接口返回了啥,提高可读性,有助于后期维护
    glaucus
    glaucus
    Jan 8, 2020
    10
    感觉规范上当然是泛型,但是只作为序列化的返回类在我的实际体验下 Object 更方便。。。
    br00k
    br00k
    Jan 8, 2020 via iPhone
    11
    建议泛型,参考 ResponseEntity
    cheng6563
    cheng6563
    Jan 8, 2020 via Android
    12
    泛型,给 swagger 还能自动出类型
    lihongjie0209
    lihongjie0209
    Jan 8, 2020
    13
    其实吧, 序列化之后就无所谓了, 除非你要做静态代码分析
    Yuicon
    Yuicon
    Jan 8, 2020
    14
    泛型,就像口渴了喝水一样自然
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2234 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 84ms · UTC 02:03 · PVG 10:03 · LAX 18:03 · JFK 21:03
    ♥ Do have faith in what you're doing.