gpt4 book ai didi

java - 使用相同的实现从数组列表创建对象

转载 作者:行者123 更新时间:2023-11-30 06:35:18 24 4
gpt4 key购买 nike

我有一个由不同类组成的 HashMap,每个类具有与每个键关联的不同属性。我正在使用 Java 8 的 stream() API 来根据属性合并列表。我的目标是迭代合并列表,基于类创建一个对象,并使用接口(interface)调用每个对象的方法。

合并这些对象后,我在创建这些对象时遇到了麻烦。这是我的代码:

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();

关于java - 使用相同的实现从数组列表创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45288820/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com