2015-10-21 103 views
0

我使用的是Spring批處理,因爲我將類名稱作爲參數傳遞給讀者,因此我想將其設置爲我的目標類名。有一種方法可以從類名中獲取類名String.I嘗試使用反射,我正在成功獲得該類。但我無法設置爲我的目標類型 下面是我的代碼。如何從字符串獲取類名

reader.setTargetType((Class<? extends className>) className.class); 

它應該是::

@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); 
} 
+0

'className.class'總是'String'你的情況 –

回答

1

您在這條線上犯了一個錯誤

reader.setTargetType(cls); 
+0

順便說一句,你不能做'Class <?用'className'擴展className>'變量。只有當它是一種類型時,你才能做到。 –

+0

是的,你是對的。謝謝 –