【发布时间】:2014-07-16 11:31:15
【问题描述】:
我创建了一个通用方法,在该方法中我将传递一个 DAO,但它不会是一个单一的 DAO。就像我不仅会通过 StudentDao,还会通过 TeachersDao 和 ClubsDao。
原来,这是我的方法:
public static String getSomething(StudentDao, String id){
Properties proFind = new Properties();
proFind.put(StudentDao.ID, id);
dao.select(proFind).get(0);
return somethingINeed;
}
但后来我决定只使用一种方法,让它变得通用.. 是这样的:
public static <T> String getSomething(Class<T> dao, String id){
Properties proFind = new Properties();
proFind.put(StudentDao.ID, id);
dao.select(proFind).get(0);
return somethingINeed;
}
但这是不正确的。
所以我的目标是通过该方法中的任何道。 我错过了java中的东西吗? 非常感谢任何想法或启发。
[编辑]
我所有的 Daos 都扩展了 Dao 和接口。 我关心的只是我如何使用任何道的这种方法。 使用的属性也可以在界面Dao中找到。
【问题讨论】:
-
这不是有点倒退吗?您的业务代码不应该包含
studentDAO.getStudentById(id);之类的内容,然后使用它(可能还有其他 DAO,例如获取教师和他们的学生)。 -
如果在 getSomething 中你将使用所有 dao 的相同方法,例如获取 dao 的 select 方法,然后使用编程接口选项
标签: java jakarta-ee