我们被分配来实现代码块的内部,其中它与被声明为arraylist的给定类(EmployeeProjectDetail)相关联。
我的代码如下。
public List<EmployeeProjectDetail> getEmployeeProjectHistory(long employeeID, long projectID) {
List<EmployeeProjectDetail> detailList = new ArrayList<EmployeeProjectDetail>();
return detailList;
}
我尝试输入语句。
detailList.contains(projectDAO.getEmployeeProjects(employeeID));
detailList.contains(projectDAO.getEmployeeProjectRoles(employeeID, projectID));
然后代码不返回任何值,但是projectDAO类中的invovled sql查询被彻底处理。任何帮助将不胜感激。
答案 0 :(得分:3)
contains会检查项目是否在列表中,您所查找的内容是add。
您应该添加
行detailList.add(projectDAO.getEmployeeProjects(employeeID));
更新(我猜测方法和类名)
根据ClassCastException,getEmployeeProjects(employeeID)
会返回ArrayList
。如果此ArrayList
中的对象为EmployeeProjectDetail
,则可以使用return projectDAO.getEmployeeProjects(employeeID);
替换方法正文。如果它们是表示项目的不同对象,例如EmployeeProject
,则需要使用以下代码替换方法体:
List<Project> projects = projectDAO.getEmployeeProjects(employeeID);
ArrayList<EmployeeProjectDetail> projectDetails = new ArrayList<EmployeeProjectDetail>();
for (Project project : projects) {
if(project.getProjectID == projectID){
projectDetails.add(project.getProjectDetail());
}
}