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

时间:2014-07-31 21:02:05

标签: java oop map enums

我的同事告诉我,使用地图很懒,而且程序员的目的通常会被实际对象更好地服务。但我不知道最好的方法。由于密钥是Enum类型,这对我来说更复杂。

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

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

不确定这是否清楚(星期四下午5点=我已经死了),所以如有必要,请要求澄清。

1 个答案:

答案 0 :(得分:3)

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

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

......而不是:

String firstName = person.getFirstName();

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

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

但是我要注意分离关注点,以确定这是否真的有意义。地图很适合这项工作。

相关问题