如何从hashmap中提取原始列表?

时间:2015-10-18 21:27:35

标签: java

我的朋友和我正在开发一个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添加到列表
  • this:<?>
  • 以及添加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。现在我真的很难过。

有什么想法吗?

0 个答案:

没有答案