Java 加一个字段很难吗?

2021-09-26 17:24:13 +08:00
 liuidetmks

传输数据 加一个字段非常麻烦, 甚至同一种结构,从 xml 换成 json 返回,就会改动非常大?

难道 java 就没用一种通用的 map 结构表示 字典吗? 加个东西总是有很大抵触?

例如 一个 map

{
   ....
}

在使用的时候 按需取值
var a = map['a']
var b = map['b']
或者从页面 A 直接传一个 map,A 页面不需要关注到底 map 有什么(服务器返回) 到 B 页面, B 页面按需取用。

10868 次点击
所在节点    Java
90 条回复
gouflv
2021-09-26 23:43:25 +08:00
用 map 这么简单的话,还要 java 何用
cubecube
2021-09-27 00:05:47 +08:00
@LowBi 定义一个接口不就解决了?
witcherhope
2021-09-27 00:23:54 +08:00
你这是在做工程么,也太不严谨了,先不说 Java 加字段很方便,为了你所谓的灵活抛弃 Type-Safe 特性属于脑残行为,后期重构和测试以及定位问题的代价会极其大。
br00k
2021-09-27 00:47:46 +08:00
用了 ts 全是 any 的感觉。
zerofancy
2021-09-27 00:59:37 +08:00
和楼主思想不一样,我们接口返回类型定义在 proto 文件,在一个独立的仓中,真正的客户端实体类由它编译过来,谁也别乱改接口。
DreamSpace
2021-09-27 08:24:16 +08:00
1. 加字段简单,但是 pojo 多了会很麻烦。如果要加的字段可以算出来或者是用于控制视图逻辑那后端不愿意加也正常。
2. 如果需要单个接口返回 xml,后端在解析器和反序列化器配置到位的情况下不用动任何代码,只需要前端在发送请求时声明自己需要 application/xml 即可
mmdsun
2021-09-27 08:34:02 +08:00
jsonview 了解一下。spring 可以做 json 视图
mmdsun
2021-09-27 08:35:08 +08:00
@Kilerd 那人去腾讯就没推广了。这个库现在是腾讯的顶级开源项目。
inhzus
2021-09-27 08:53:39 +08:00
楼主这得是什么快速迭代?一天一发版?迭代多快的项目我都没听说过用 map 传参(搞算法不懂工程的除外
zhennann
2021-09-27 09:26:59 +08:00
加字段不难,就是让后端加字段有点难。接口一旦确定下来,后端是最讨厌变更的。当然我说的是 java 后端。
为啥 nodejs 会火起来,就是因为灵活,改动起来很快。但现在又在鼓吹 ts,然后慢慢又回到不愿改接口的老路。
bk201
2021-09-27 09:30:02 +08:00
加起来倒不是很难,但是开了这个口子,就无休止的变更就很烦。
CaffreySun
2021-09-27 09:34:22 +08:00
我讨厌 js 的原因就是它到处都是 Map,到处都是不知道类型的对象。
拿到一个参数,我不知道它是啥,是不是我想要的类型,它会不会是 null 或者 undefined,所以我比较喜欢 ts 。
对于后端来说 Map 同样让人讨厌,不知道 Map 里有啥,有没有想要的参数,无法交验参数的类型对不对。
neptuno
2021-09-27 09:35:19 +08:00
破窗效应?你这是给后人留坑呀,而且业务做大之后,想重构就麻烦了,不是不发版就不会出错,大胆创新小心求证嘛。
Kilerd
2021-09-27 09:54:22 +08:00
@mmdsun 也挺好,靠一个“顶级”开源进了腾讯。可是最后怕不是又要变成 kpi 式开源了
wangxin13g
2021-09-27 10:02:01 +08:00
这么喜欢 map 为什么不用 php +1
从 php 换 java 的主要原因就是看不惯这种薛定谔的 map
aitaii
2021-09-27 10:23:24 +08:00
用 Object 最好
wqhui
2021-09-27 10:27:22 +08:00
用 map 传东西,改了几版后谁也不知道这 map 里面会有什么
QGLNepal
2021-09-27 10:27:32 +08:00
json schema
8e47e42
2021-09-27 10:54:11 +08:00
@CaffreySun TS 可破,不然 flow ?
mightofcode
2021-09-27 11:07:29 +08:00
不难
改成 map 就完事了

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

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

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

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

© 2021 V2EX