如何在 java 中将 className 设置为 BeanPropertyRowMapper<>() 的参数

How to set className as parameter for BeanPropertyRowMapper<>() in java

我正在尝试将 class 设置为 beanPropertyRowMapper。

query.setRowMapper(new BeanPropertyRowMapper<ClassName>());

我需要从字符串中获取 class。我尝试了以下方法:

Class<?> mapperClass = Class.forName(stringValue);
query.setRowMapper(new BeanPropertyRowMapper< mapperClass >());

这是行不通的。我怎样才能做到这一点?结果应该等同于

query.setRowMapper(new BeanPropertyRowMapper<Person>());

其中 Person 是 class。

简单的回答:你不能。 Javas 泛型系统不支持这种多态性。

这个

Class mapperClass = Class.forName(stringValue);
BeanPropertyRowMapper mapper = new BeanPropertyRowMapper(mapperClass);

应该就可以了。注意缺少 <>.