gpt4 book ai didi

java - 如何键入以编程方式初始化的类

转载 作者:行者123 更新时间:2023-12-01 18:51:31 26 4
gpt4 key购买 nike

我正在尝试以编程方式初始化一个类并将其添加到列表中。我不知道如何输入 workflowClass 以便它扩展 BaseWorkflow 以便列表接受它。目前它说我无法在需要 时添加 Object?扩展 BaseWorkflow

private static List<? extends BaseWorkflow> workflowList = new ArrayList<BaseWorkflow>();

/**
* Initialize the production line
*/
public static void init() {
//load active workflows into memory
WorkflowService workflowService = (WorkflowService) ApplicationContextProvider.getApplicationContext().getBean("workflowService");
for (Workflow workflow: workflowService.findActive()) {
try {
Class<?> clazz = Class.forName(workflow.getClassName());
Object workflowClass = clazz.newInstance();
workflowList.add(workflowClass);

最佳答案

您将无法向 List<? extends BaseWorkflow> 添加任何内容。该列表应声明为 List<BaseWorkflow> 。确实,List<? extends BaseWorkflow>意思是:一些未知类型的列表,它是或扩展了 BaseWorkflow。由于类型未知,因此向此列表添加任何内容(除 null 之外)都会破坏其类型安全性。

然后一个简单的转换就可以了:

workflowList.add((BaseWorkflow) workflowClass);

关于java - 如何键入以编程方式初始化的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15770661/

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