我的朋友和我正在开发一个Spring Activiti项目,但我偶然发现了一个似乎无法解决的障碍。
以下是我朋友最后的代码示例:
OnlineLogisticRegression
DelegateExecution delEx = delegateTask.getExecution();
for(TransactionItem itemTransItem : transItem) {
List forRequest = daoManager.getLaptopsForRequest(BigInteger.valueOf(itemTransItem.getAssetType().getId()), BigInteger.valueOf(approverId));
forRequest.forEach(System.out::println);
System.out.print(itemTransItem.getId());
forReqeustMap.put(String.valueOf(itemTransItem.getId()), forRequest);
}
delEx.setVariable("forRequestMap", forReqeustMap);
循环设置散列映射。值得注意的是,该值是一个List,大概是(原始)原始类型。
最后一行在委托执行中设置hashmap。
现在,这是我最后的代码:
for
测试散列映射DelegateExecution delEx = delegateTask.getExecution();
HashMap<String,List> forReqeustMap = (HashMap<String, List>) delEx.getVariable("forRequestMap");
if (forReqeustMap.isEmpty()){
System.out.println("Uh oh.");
}
else{
System.out.println("Something else is wrong.");
forReqeustMap.forEach((k,v) -> System.out.println("key: "+k+" value:"+v));
}
for (TransactionItem itemTransItem : transItem) {
System.out.println(itemTransItem.getId());
List forRequest = new List(forReqeustMap.get(String.valueOf(itemTransItem.getId())));
if (forRequest.isEmpty()){
System.out.println("Uh oh.");
} else {
System.out.println("What");
}
}
的值得到true;价值观就在那里。
问题是提取列表。我的代码根本不起作用,产生null。我假设它与我试图获取值的方式有关,或者与列表本身有关 - 它甚至不会在没有确认的情况下到达我的forRequestMap
块。
我试过了:
if-else
添加到列表<?>
List forRequest = forReqeustMap.get(itemTransItem.getId());
,但似乎都没有效果。有什么想法吗?
编辑:这是一个输出日志:
第一批代码的输出:
@SuppressWarnings("rawtypes")
forRequest.forEach(System.out::println);
System.out.print(itemTransItem.getId());
这是第二批的输出(从初始代码略微修改):
{asset_type_id=1, asset_id=1, id=1}
{asset_type_id=1, asset_id=2, id=2}
161
forReqeustMap.forEach((k,v) -> System.out.println("key: "+k+" value:"+v));
System.out.println(itemTransItem.getId());
编辑:更新:
改变了这个:
key: 161 value:[{asset_type_id=1, asset_id=1, id=1}, {asset_type_id=1, asset_id=2, id=2}]
161
对此:
if (forRequest.isEmpty()){
System.out.println("Uh oh.");
}
然后我得到一个“哦哦”。这意味着我的forRequest为null。然后我打印出以下内容:
if (forRequest == null){
System.out.println("Uh oh.");
}
尽管刚刚打印出k和v,但是给了我一个null。现在我真的很难过。
有什么想法吗?