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

2020-03-06 11:19:35 +08:00
 whereFly
有时候需要返回 List<对象 1>,有时候需要返回 List<对象 2>。
4536 次点击
所在节点    Java
20 条回复
ruatyy
2020-03-06 11:30:00 +08:00
c# 里面是用泛型。List<T>这种,别的语言应该也有类似的吧。
fueen
2020-03-06 12:18:15 +08:00
泛型啊...
meteor957
2020-03-06 12:20:07 +08:00
泛型
Cbdy
2020-03-06 12:21:14 +08:00
可以这样写方法签名
public List<?> api();
Aresxue
2020-03-06 13:05:16 +08:00
泛型 List<T>
hronro
2020-03-06 13:12:49 +08:00
借楼问一下,如果要返回 [1, "2", true, {"hello": "world"}] 这种每个 item 的类型都不一样的 array 该如何做到呢
Jonz
2020-03-06 13:16:08 +08:00
@hronro 这种需求用 map 合适点?
gaobing
2020-03-06 13:16:52 +08:00
泛型是在编译时确定的,运行时使用 List<Object>
chenluo0429
2020-03-06 13:31:16 +08:00
@hronro 一般建议是别这么返回
dilu
2020-03-06 13:32:58 +08:00
羡慕 java 大佬们,php 节点从来不问这么高级的问题
nnqijiu
2020-03-06 13:33:50 +08:00
模板
br00k
2020-03-06 13:34:45 +08:00
不同类型的建议用不同的字段名。这样简单明了。
sadfQED2
2020-03-06 13:40:11 +08:00
@hronro list< Object>
technode
2020-03-06 13:42:58 +08:00
用 Object 对象 但是建议忍住不要写这种会被后来者骂娘的代码
avk458
2020-03-06 14:31:57 +08:00
同一个接口?这本身就不符合单一原则吧
cnzjl
2020-03-06 14:34:41 +08:00
可能是接收参数有个 type,type 为 1 返回 Student,type 为 2 返回 Class .
xyjincan
2020-03-06 15:58:15 +08:00
arr json
Fu4ng
2020-03-06 16:26:53 +08:00
自己定义一个 Result<T>类,然后 Result 类里有一个 List<T> 成员,然后看你要不要再 json 比如{“status”,“Classtype”,Result}
nekoneko
2020-03-06 16:42:24 +08:00
你可以直接返回类型为 Object
onecode
2020-03-06 17:27:36 +08:00
C# ActionResult 请求一战

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/650333

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX