我正在使用 Spring Batch,因为我将类名作为参数传递给读者,因为我想将其设置为我的目标类名。有没有一种方法可以让我们从字符串中获取类名。我尝试使用反射因为我成功获得了该类。但我无法设置为我的目标类型类 下面是我的代码。
@Bean(name = "jMongoReader")
@StepScope
public MongoItemReader<Object> jsonDataReader(@Value("#{jobParameters[name]}") String className) {
try {
Class cls= Class.forName(className);
reader.setTemplate(mongoConfig.getMongoTemplate());
reader.setCollection("employeeInfo");
reader.setTargetType((Class<? extends className>) className.class);
reader.setQuery("{}");
Map<String, Direction> sorts = new HashMap<String, Sort.Direction>(1);
sorts.put("_id", Sort.Direction.ASC);
reader.setSort(sorts);
reader.setFields(keys);
}
最佳答案
您在这一行犯了一个错误:
reader.setTargetType((Class<? extends className>) className.class);
应该是:
reader.setTargetType(cls);
关于java - 如何从字符串中获取类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33256111/