簡體   English   中英

如何使用 Java 泛型調用帶有動態參數的方法?

[英]How to use Java generics for calling method with dynamic parameter?

我有 2 個對象,user 和 userevent ......我有 7 個通用的方法集......用戶和用戶事件是不同的對象,幾乎沒有匹配的參數......

如何使用泛型實現這一點,以便我可以重用用戶和用戶事件的方法? 方法接受用戶或用戶事件或這兩個對象作為參數..

為什么不使用接口?

User 和 UserEvent 類都將實現此接口。 通用方法將在接口中聲明並在兩個類中覆蓋。 至於方法,它們將接受任何實現新創建的接口的對象作為參數。

如果我理解正確,請檢查我為 dao 對象編寫的示例

public interface IDao<T> {
void saveOrUpdate(T instance);

Long save(T instance);

void delete(T instance);

T get(Long id);
}

public class BasicHibernateDao<T> extends HibernateDaoSupport implements IDao<T> {
private final Class<T> clazz;

public BasicHibernateDao(Class<T> clazz) {
    this.clazz = clazz;
}

public void saveOrUpdate(T instance) {
    getHibernateTemplate().saveOrUpdate(instance);
}

public Long save(T instance) {
    return (Long) getHibernateTemplate().save(instance);
}

public void delete(T instance) {
    getHibernateTemplate().delete(instance);
}

public T get(Long id) {
    return getHibernateTemplate().get(clazz, id);
}
}

public class ClientDao extends BasicHibernateDao<Client> {

public ClientDao() {
    super(Client.class);
}
}

希望這個比喻對你有幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM