如何使用Java泛型来调用动态参数方法?

时间:2015-07-02 17:12:32

标签: java java-ee generics

我有2个对象,user和userevent ...我有两个共同的7个方法.. User和userevent是不同的对象,只有很少的匹配参数..

如何使用泛型实现这一点,以便我可以为user和userevents重用这些方法?方法接受user或userevent或者两个对象作为参数..

2 个答案:

答案 0 :(得分:1)

为什么不使用界面?

User和UserEvent类都将实现此接口。常用方法将在接口中声明,并在两个类中重写。 至于方法,它们将接受任何实现新创建的接口的对象作为参数。

答案 1 :(得分:0)

如果我理解正确,请检查我为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);
}
}

希望这个类比对你有帮助