2016-11-30 59 views
0

我有一个对象列表,并且该对象内有一个地图数组。我必须访问每个对象中存在的映射值。从地图数组中检索值(地图位于对象内)

这里是对象:

public class DiscoveredProduct 
{ 
    private String approvedOn; 
    private String rolledBackOn; 
    private Map<String, Object> raw_attributes[]; 
    private Map<String, Object> product_attributes[]; 
    private Map<String, Object> norm_attributes[]; 
} 

请帮帮忙!

+1

那些成员变量不是地图,而是地图数组。 – Jesper

+0

你的问题不太清楚。 – Prasath

回答

0
// we iterate over all arrays of Map 
for (Map<String,Object> map : raw_attributes){ 
    // we iterate over all values of the current map 
    for (Entry<String,Object> entry : map.entrySet()){    
     String key = entry.getKey(); 
     Object value = entry.getValue(); 
    } 

} 
0

鉴于代码,您无法访问这些Map(数组,btw!)中的值。

你可以做什么:

  1. 变化从田间地头私人公共;或者至少受到包裹保护(不推荐)
  2. 想出一个接口,表示您的类DiscoveredProduct可以提供。

例如:

public Object getRawAttributeFor(int index, String key) 

这将只是

return raw_attributes[index].get(key) 

(当然,你需要对这些输入参数的适当检查)

一个更方便的接口可以看看像

public List<Object> getRawAttributesFor(String key) 

这一次,您只需迭代您的地图数组,然后返回地图知道该键的所有这些值。

最后:阅读关于java命名约定。你只能在SOME_CONSTANT中使用_ char;但没有其他地方。