我们正在开发一个java项目,我们有几种相互通信的方法,每个方法返回不同的数据类型,例如数组列表,链接列表或 HashMap 等。我的一个 friend 想要转换所有 HashMap 和arraylist 将方法输出为字符串,然后返回它们(散列图将转换为类似 a="ball"|c="dog"的格式;list 将转换为类似 a|b|c 的格式),并实际上使用字符串作为媒介沟通。这是否可取。
Edit1:这个对话发生的原因是因为我们有可能返回散列、字符串或列表的方法。就我个人而言,我更喜欢在转换为对象并逐案处理后返回它们。
我很快就会尝试上传代码片段。
最佳答案
通过纯字符串进行通信就像重新发明轮子。已经有多种相互通信的格式(例如 JSON、XML 等)。
如果您只是在 Java 代码中的类或方法之间进行通信,那么通过字符串进行通信是一个可怕的想法,因为它剥夺了您的代码中构建 Java 所基于的面向对象的基本特征(例如多态性、继承、强变量类型等)。
这个字符串代表什么?它是如何使用的?代表姓名的字符串和代表信用卡号的字符串本质上是不同的,并且您可以用它们执行的操作也不同。
如果您只使用字符串,最终会使任何字符串成为函数的有效参数,这在某些情况下可能非常危险。
长话短说,不要急于进入 "primitive obsession" .
关于java - 是否建议使用java字符串作为方法间通信的唯一模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35327802/