V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
whereFly
V2EX  ›  Java

请问同一个接口怎么返回不同类型的 List 呢?

  •  
  •   whereFly · 2020-03-06 11:19:35 +08:00 · 4257 次点击
    这是一个创建于 1483 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有时候需要返回 List<对象 1>,有时候需要返回 List<对象 2>。
    20 条回复    2020-03-06 17:27:36 +08:00
    ruatyy
        1
    ruatyy  
       2020-03-06 11:30:00 +08:00
    c# 里面是用泛型。List<T>这种,别的语言应该也有类似的吧。
    fueen
        2
    fueen  
       2020-03-06 12:18:15 +08:00
    泛型啊...
    meteor957
        3
    meteor957  
       2020-03-06 12:20:07 +08:00
    泛型
    Cbdy
        4
    Cbdy  
       2020-03-06 12:21:14 +08:00
    可以这样写方法签名
    public List<?> api();
    Aresxue
        5
    Aresxue  
       2020-03-06 13:05:16 +08:00
    泛型 List<T>
    hronro
        6
    hronro  
       2020-03-06 13:12:49 +08:00
    借楼问一下,如果要返回 [1, "2", true, {"hello": "world"}] 这种每个 item 的类型都不一样的 array 该如何做到呢
    Jonz
        7
    Jonz  
       2020-03-06 13:16:08 +08:00
    @hronro 这种需求用 map 合适点?
    gaobing
        8
    gaobing  
       2020-03-06 13:16:52 +08:00
    泛型是在编译时确定的,运行时使用 List<Object>
    chenluo0429
        9
    chenluo0429  
       2020-03-06 13:31:16 +08:00
    @hronro 一般建议是别这么返回
    dilu
        10
    dilu  
       2020-03-06 13:32:58 +08:00
    羡慕 java 大佬们,php 节点从来不问这么高级的问题
    nnqijiu
        11
    nnqijiu  
       2020-03-06 13:33:50 +08:00
    模板
    br00k
        12
    br00k  
       2020-03-06 13:34:45 +08:00 via iPhone
    不同类型的建议用不同的字段名。这样简单明了。
    sadfQED2
        13
    sadfQED2  
       2020-03-06 13:40:11 +08:00 via Android
    @hronro list< Object>
    technode
        14
    technode  
       2020-03-06 13:42:58 +08:00
    用 Object 对象 但是建议忍住不要写这种会被后来者骂娘的代码
    avk458
        15
    avk458  
       2020-03-06 14:31:57 +08:00
    同一个接口?这本身就不符合单一原则吧
    cnzjl
        16
    cnzjl  
       2020-03-06 14:34:41 +08:00
    可能是接收参数有个 type,type 为 1 返回 Student,type 为 2 返回 Class .
    xyjincan
        17
    xyjincan  
       2020-03-06 15:58:15 +08:00
    arr json
    Fu4ng
        18
    Fu4ng  
       2020-03-06 16:26:53 +08:00
    自己定义一个 Result<T>类,然后 Result 类里有一个 List<T> 成员,然后看你要不要再 json 比如{“status”,“Classtype”,Result}
    nekoneko
        19
    nekoneko  
       2020-03-06 16:42:24 +08:00
    你可以直接返回类型为 Object
    onecode
        20
    onecode  
       2020-03-06 17:27:36 +08:00
    C# ActionResult 请求一战
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1091 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 18:55 · PVG 02:55 · LAX 11:55 · JFK 14:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.