我对struts和java相对较新。我一直试图理解下面这段代码。
List<LabelValueBean> dbList = getCardProductList();
ConcurrentMap<Integer, ProductItem> ret = new ConcurrentHashMap<Integer, ProductItem>();
for (LabelValueBean lb : dbList) {
ProductItem pi = new ProductItem();
pi.setId(Integer.valueOf(lb.getId()));
pi.setCode(lb.getCode());
pi.setName(lb.getDescription());
LabelValueBeanAuxCol[] aux = lb.getLabelvaluebeanauxcol();
pi.setTypeProduct(Boolean.TRUE);
if (null != aux) {
for (LabelValueBeanAuxCol element : aux) {
if (null != element
&& "PRDCT_SVC_IND".equals(element.getName())) {
pi.setTypeProduct(Boolean.valueOf("Y".equals(element
.getValue())));
}
}
}
pi.setNeedSetup(Boolean.TRUE);
ret.put(pi.getId(), pi);
}
return Himms2LookupUtil
.<ConcurrentMap<Integer, ProductItem>> setValueInCache(
Himms2Names.CARD_SERVICE_PRODUCT_LIST, ret);
}
关注&#34; PRDCT_SVC_IND&#34;周围的代码块,如何将列的名称映射到labelvaluebean?
虽然我对并发映射和键值对功能有所了解,但我对这里的大多数概念都非常不确定,并尝试在互联网上搜索而没有太多运气。我想要更清楚地概述上面这些行的实际含义(一般来说),就像这里使用的概念而言,如concurrenthashmap,list(labelvaluebean)等。
非常感谢任何投入。
答案 0 :(得分:1)
代码正在做以下事情: -
1)将CardProductList放在第一行,并将引用存储在dbList对象中
List<LabelValueBean> dbList = getCardProductList();`
2)创建键值的ConcurrentMap。
3)开始迭代CardProductList并对每个CardProductList对象执行以下操作 -
a) Crates ProductItem object.
b) setting CardProduct object values (id, code, name) into ProductItem object.
d) setting ProductItem.typeProduct to TRUE.
c) getting Labelvaluebeanauxcol and store it in a LabelValueBeanAuxCol[] array instance called aux.
d) now check if aux is not null then iterates aux array and checks if(elemet is not null AND element name IS EQUAL TO "PRDCT_SVC_IND"
THEN
set ProductItem.TypeProduct to True if element.value = Y
ELSE
set ProductItem.TypeProduct to FALE
e) set ProductItem.NeddSetup = TRUE
f) set ProductItem.id and ProductItem into ConcurrentMap.
4)将ConcurrentMap存储在缓存中