-1

现有代码:

     Map<?, ?> rolePrincipleMap = cnRoleHolder.getRolePrincipalMap();
                Iterator<?> cnRoleIterator = rolePrincipleMap.keySet().iterator();
                  while (cnRoleIterator.hasNext()) {
                    Object cnRole = cnRoleIterator.next();
                  if (!SUBMITTER.equals(cnRole.toString())) {
               ArrayList<?> cnRoleMembersList = (ArrayList<?>) rolePrincipleMap.get(cnRole);
               //operations
}}

错误在定义 ArraList 的位置。请帮助更新代码。

4

1 回答 1

1

该错误警告您正在访问映射以检索所有键,然后对于某些键,您再次访问映射以检索值。检索映射的条目更有效,因为每个条目已经具有键和值:

for ( Map.Entry<?, ?> entry : rolePrincipleMap.entrySet() ) {
   Object cnRole = entry.getKey();
   if (!SUBMITTER.equals(cnRole.toString())) {
           ArrayList<?> cnRoleMembersList = (ArrayList<?>) entry.getValue();
           //operations
   }
}
于 2021-08-05T09:41:07.710 回答