以前的作法:
@Override
public BaseModel getEntity(Class<? extends BaseModel> clazz, Long id) {
EntityManager em = EMF.get().createEntityManager();
BaseModel obj = em.find(clazz, id);
em.close();
return obj;
}缺點是呼叫完 getEnity(...) 之後還要 cast 成想要的型別。突然想到,研究了一下 ArrayList<E>,得到想要的作法,這樣就不用再 cast 了。
@Override
public <T> T getEntity(Class<T> clazz, Long id) {
EntityManager em = EMF.get().createEntityManager();
T obj = em.find(clazz, id);
em.close();
return obj;
}
沒有留言:
張貼留言