我正在尝试获取一个通用的 get 方法,以使用休眠的某个 id 从数据库加载对象。在我开始之前,该方法看起来像:
public static Object getObjectFromDatabase(Class c, long id) {
Transaction newTransaction = getSession().beginTransaction();
Object result = getSession().get(c, id);
newTransaction.commit();
return result;
}
然后我尝试使用以下代码获取通用方法:
public static <T> T getObjectFromDatabase(Class<T> c, long id) {
Transaction newTransaction = getSession().beginTransaction();
T result = getSession().get(c, id);
newTransaction.commit();
return result;
}
不幸的是这条线
T result = getSession().get(c, id);
给出错误:类型不匹配:无法从 Object 转换为 T
我知道我可以对 T 使用显式强制转换
T result = (T) getSession().get(c, id);
但是有没有办法避免这种演员?
谢谢