我正在尝试创建类型为T的列表,其中T实现2个接口.要添加到此列表中,我必须进行演员表,但我觉得我不应该这样做.有更优雅的方式吗?
(generalLabLookup返回a List<Lab>,generalVisitLookup返回a List<Visit>.两者Lab并Visit实现HasId和HasDate,并且都没有除Object之外的超类.查找方法和codeCheckDao都不是通用的.)
<T extends HasId & HasDate> void labAndVisitAction(int measureYear) {
LocalDate startDate = LocalDate.of(measureYear, 1, 1);
LocalDate endDate = LocalDate.of(measureYear, 12, 31);
List<T> labsAndVisits = new ArrayList<T>();
labsAndVisits.addAll( (List<T>) codeCheckDao.generalLabLookup(startDate, endDate, excludeSupp));
labsAndVisits.addAll((List<T>)codeCheckDao.generalVisitLookup(startDate, endDate, excludeSupp));
//do other stuff
}
Run Code Online (Sandbox Code Playgroud)