我有一个通用方法:
public <T> boolean saveRow(T row, Class<T> rowClass) {
Mapper<T> rowMapper = mappingManager.mapper(rowClass);
rowMapper.save(row);
return true;
}
我想放弃第二个参数,因为我可以从row.getClass()
推断rowClass
.
我注意到,完成这项工作的唯一方法是将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;
}
为什么需要演员阵容?
谢谢!
因为Class.getClass()
不知道泛型。
Class<?>
不能代替Class<T>
.
看签名:
public final native Class<?> getClass();