以前的作法:
@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; }
沒有留言:
張貼留言