java - 如何将 Map 封装到自定义对象中

标签 java oop map enums

我的同事告诉我,使用 map 是懒惰的,而且通常情况下,实际对象会更好地满足程序员的目的。但我不知道这样做的最佳方法。由于 key 是枚举类型,这对我来说更加复杂。

假设我有一个 Hashmap<MyEnum, MyObj>预计有四个 hashmap 键(一个对应 MyEnum 中的每个值)。 MyObj hashmap 值是数据库中具有给定枚举值的几个 MyObjs 中的最新值。

我最好的猜测涉及一个有四个字段的对象,或者可能是两个按顺序包含键和值的数组。

不确定这是否清楚(周四下午 5 点 = 我脑死亡),因此如有必要,请寻求澄清。

最佳答案

虽然将 map 用于其预期目的并没有错,但 map 有时会被误用为强类型对象的替代品。

String firstname = (String)myMap.get("first_name");

...相对于:

String firstName = person.getFirstName();

由于 Java 将枚举实现为类,您可能需要考虑将要查找的值直接放入枚举类中:

MyEnum val = getVal();
MyObj obj = val.getMostRecentMyObj();

但我会注意关注点分离以确定这是否真的有意义。 map 很可能是这项工作的合适工具。

关于java - 如何将 Map 封装到自定义对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25068890/

相关文章:

javascript - 如何在 JavaScript 中建模这个数据结构? (AngularJS)

c++ - 有没有办法在不删除内容的情况下从 C++ 映射中删除键?

java - 意外的 String.join() 行为

php - 为什么我无法访问我的数据库?

java - 要在我的 Java 项目中使用外部开源库,我需要做什么?

c++ - 我必须对每个头文件进行 typedef 吗?

ruby-on-rails - rails 3 的 map.connect 语法

C++从 map 创建排序 vector

java - 交换 stringbuffer 对象中的字符时出错

java - 遇到 Sonar 错误时如何处理TODO注释