我有一个不同类别的HashMap
,每个类别都有与之关联的不同属性。我正在使用Java 8的stream()
API合并基于该属性的列表。我的目标是迭代合并列表,基于该类创建一个对象,并使用该接口为每个对象调用该方法。
合并这些对象后,我很难创建它们。这是我的代码:
private static final HashMap<Class<? extends DataAssessment>, Integer> TYPE_DATA_ASSESSMENT = new HashMap<Class<? extends DataAssessment>, Integer>() {{
put(AsertUsed.class, Definitions.DATA_TYPES.ELF);
put(ShellDeleted.class, Definitions.DATA_TYPES.ELF);
put(ShellUsed.class, Definitions.DATA_TYPES.ELF);
}};
在我的switch语句中:
List<Class<?>> assessmentType = TYPE_DATA_ASSESSMENT.entrySet()
.stream()
.filter(item -> item.equals(Definitions.DATA_TYPES.ELF))
.map(Map.Entry::getKey)
.collect(Collectors.toList());
for(int i = 0; i < assessmentType.size(); i++)
{
// This is where I am stuck
//
DataAssessment assessment = new (DataAssessment) assessmentType.get(i);
}
最佳答案
这应该工作
DataAssessment assessment = (DataAssessment) assessmentType.get(i).newInstance();