使用多值类型创建HashMap的正确方法

时间:2016-07-11 09:24:49

标签: java

我有一个代表一个实体的对象。例如,我有"用户"具有以下字段的java对象,String name,String first name,String address,boolean deadOrAlive。但是现在我没有将字段放入hashmap中,所以我的第一反应就是这样做:

private HashMap<String, Object>  fieldsHM;

这意味着当我想使用它时我必须投射我的HM值,而我不想这样做因为我需要在使用我的值之前知道类型。我想做一些像:

Set<String> keys = fieldsHM.keySet();
for(String key : keys) {
    if(fieldsHM.get(key).isBoolean()) {
        // Do the appropriate things
    } else {
        // Do the thing for this case...
    }
}

我认为在java中可能这样做,这样做会不错?

编辑1:我不想制作一个hashMap,因为这不是我需要的。我需要的是一种按字段浏览实体用户字段的字段的方法,并根据字段的类型执行相应的操作。

2 个答案:

答案 0 :(得分:1)

  

我不想制作一个hashMap,因为这不是我需要的。我是什么   需要是一种浏览实体用户字段的字段的方法   字段,并根据字段的类型做适当的事情。

我想这对于Reflection来说是一个工作,比如User.class.getFields()。 区分原始字段仍然会感到不舒服,但您可以使用它们的包装类。

但无论你选择哪种方式,我认为如果你能说明实际目标是什么,那么会有更好的解决方案。 根据您的实际使用情况,使用JSON(可能使用数据绑定)甚至是数据库可能是有意义的。

答案 1 :(得分:0)

您可以使用异构容器模式,但我会放弃地图构思并使用适当的对象。