我有一個通用的方法:爲什麼Java的泛型方法參數類需要轉換
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;
}
爲什麼是必要的投?
謝謝!
(BalusC的答案)https://stackoverflow.com/questions/7276096/getclass-of-a-generic-method-parameter-in-a-java –