我有一个代表一个实体的对象。例如,我有"用户"具有以下字段的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,因为这不是我需要的。我需要的是一种按字段浏览实体用户字段的字段的方法,并根据字段的类型执行相应的操作。
答案 0 :(得分:1)
我不想制作一个hashMap,因为这不是我需要的。我是什么 需要是一种浏览实体用户字段的字段的方法 字段,并根据字段的类型做适当的事情。
我想这对于Reflection来说是一个工作,比如User.class.getFields()。 区分原始字段仍然会感到不舒服,但您可以使用它们的包装类。
但无论你选择哪种方式,我认为如果你能说明实际目标是什么,那么会有更好的解决方案。 根据您的实际使用情况,使用JSON(可能使用数据绑定)甚至是数据库可能是有意义的。
答案 1 :(得分:0)
您可以使用异构容器模式,但我会放弃地图构思并使用适当的对象。