java - 是否建议使用java字符串作为方法间通信的唯一模式

标签 java function

我们正在开发一个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/

相关文章:

java - RuntimeException : Unable to start activity ComponentInfo: java. lang.NullPointerException 致命异常

javascript - 文本输入大于2后使div可见

ios - 无法在 Swift 类中为选择器使用参数

bash - Bash 中的嵌套函数调用

java - MONGODB - 使用 JAVA 查找 "_id"

java - 用户界面 :field and class to <td>/<tr> in gwt

java - 关于在Android上创建GUIS "dynamically"的问题

java - 如何在公共(public)pom中保留版本号并在其他pom文件中使用它(spring maven项目)

python - 在边缘编程案例中选择类或函数

c - 数组和函数指针