使用子类将 java Class 对象存储在 Hashmap<String, Superclass> 中

Storing java Class object in a Hashmap<String, Superclass> with subclasses

private final HashMap<String, Class<crawler.jobs.Worker>> availableWorkers = new HashMap<>();


availableWorkers.put("locations", LocationWorker.class);
availableWorkers.put("events", EventWorker.class);

 Class<crawler.jobs.Worker> workerClass = availableWorkers.get(queue);

LocationWorker 和 EventWorker 都实现了 Worker

我想将 Worker 类 存储在 Hashmap 中。但这种方法行不通。有什么建议吗?

谢谢。

请尝试 Class<? extends crawler.jobs.Worker>,在 Map 声明和您要发布的内容中。整个程序中只有一个对象可能匹配Class<crawler.jobs.Worker>,就是crawler.jobs.Worker.class.