public class JSONResult<T>{
private String code;
private String message;
private T data;
private Object data;
}
用这个类的时候,写泛型,写起来麻烦又感觉不太好看; 不写泛型,直接用原始类型,不好,IDEA 报警告; 不用泛型,用 Object,解析时还得强转,IDEA 也报警告。
1
luckyrayyy 2020-01-07 21:18:05 +08:00
泛型就很优雅啊...Object 肯定不行。
|
2
NeinChn 2020-01-07 21:18:35 +08:00
找一个不会报警 /报警颜色不突出 /可以关掉所以异常判断的编辑器
(大厂都这么做,比如头条,狗头保命 |
3
luozic 2020-01-07 21:20:43 +08:00 via iPhone
Java 有类型推断或者模式匹配么? 没有… 还是找个看不到的吧。
|
4
chendy 2020-01-07 21:23:23 +08:00
不用…直接返回结果 + 异常机制
|
5
chendy 2020-01-07 21:25:52 +08:00
貌似理解错了问题…
服务端和客户端都可以用泛型,不太懂楼主说的不好看是哪里不好看 没有泛型的话解析只能拿到 Map 吧… |
6
billlee 2020-01-07 21:43:33 +08:00
所以你需要的是类型推导,用 scala 或者 kotlin 就可以不写类型。
|
7
crclz 2020-01-07 22:10:48 +08:00
if 类库代码:
result 的模式会较少用到。如果用到,设计专有的 result,而不是通用的. if Http 响应体: if 查询类接口: 设计专有的 DTO 类 if 命令类接口: 楼主的代码挺好的。 if 想让前端确切、方便的知道响应的 schema(swagger 解析): 设计专有的 DTO |
8
tun 2020-01-07 23:06:28 +08:00 via Android
关闭警告
|
9
agzou 2020-01-07 23:08:38 +08:00
@Data
public class JSONResult<T> { public static final String SUCCESS = "OK"; public static final String ERROR = "ERROR"; private String msg; private String status; private T data; public JSONResult() { } public JSONResult(T data) { this.data = data; this.status = SUCCESS; } public JSONResult(String msg) { this.status = ERROR; this.msg = msg; } public static <T> JSONResult<T> ok(T data) { return new JSONResult<>(data); } public static <T> JSONResult<T> ok() { return new JSONResult<>(); } public static <T> AjaxResponse<T> error(String msg) { return new JSONResult<>(msg); } } |
10
araaaa 2020-01-07 23:20:41 +08:00 via iPhone 1
泛型怎么就不优雅了
|
11
zjsxwc 2020-01-07 23:30:54 +08:00 via Android
知足吧,某没泛型的语言里,只能写一大堆 struct 来作为 dto
|
12
KuroNekoFan 2020-01-08 06:46:40 +08:00 via iPhone
返回一个字符串算了
|
13
myidea 2020-01-08 09:23:28 +08:00
data 用 Object 就行了,直接往里放,返回前端转成 json 都一样。
“用 Object,解析时还得强转”? -- 这里不需要手动转的,交由 spring 统一处理,理论上 JsonResult 应该只用于包装给前端的结果,不需要后端解析。 |