我有一个通用的方法:
public <T> boolean saveRow(T row, Class<T> rowClass) {
Mapper<T> rowMapper = mappingManager.mapper(rowClass);
rowMapper.save(row);
return true;
}
我想抛弃第二个参数,因为我可以从rowClass
推断row.getClass()
。
我注意到,实现这项工作的唯一方法是将row.getClass()
投射到(Class<T>) row.getClass()
:
public <T> boolean saveRow(T row) {
Mapper<T> rowMapper = mappingManager.mapper((Class<T>) row.getClass());
rowMapper.save(row);
return true;
}
为什么演员必要?
谢谢!
答案 0 :(得分:1)
因为Class.getClass()
不了解通用。
Class<?>
无法替代Class<T>
。
看签名:
public final native Class<?> getClass();