使用HashMap代替DTO有什么问题?无需调用bean的setter和getter,我可以从哈希映射中获取值并在服务之间传递值(哈希映射实现Serializable接口)。
我知道这是一个坏习惯,但是为什么以及在哪种情况下我们会遇到这个问题?
感谢您的帮助。

最佳答案

没有编译时间检查。当您从返回的HashMap中提取某些内容时,您将永远无法获得编译时验证,即您将其强制转换为有效内容。
重构困难。在许多IDE(例如IntelliJ)中,都具有用于重构类的方法名称,变量等的强大功能。使用字典模式时,这变得更加困难。
返回值的更大歧义。说在项目的第1阶段,您将获得一个用户对象,并且仅使用“ getUsername()”方法。然后,在第2阶段,您突然需要访问password属性。如果您有一个用户对象,则只需查看类即可确切知道该值是否可访问以及如何获取它。使用HashMap不一定是这种情况。如果您无权访问生成HashMap的类的源(在本例中为EJB),那么您将永远不知道还有哪些其他数据属性可用。


希望对您有所帮助...

09-11 19:44
查看更多