-1
所以我想实现一个自定义的收藏家,但可惜的是我被困在一个非常有趣的问题的类型:无法解决拉姆达参数
@Override
public BiConsumer<Map<LocalDate, List<TripResultDTO>>, TripResultDTO> accumulator() {
return (acc,elem) -> {
long departureTime = elem.getOutbound().getDepartureTimeLocal();
LocalDate departureDate = new LocalDateTime(departureTime).toLocalDate();
List<TripResultDTO> othersInTheSameDay = acc.getOrDefault(departureDate,new LinkedList<>());
othersInTheSameDay.add(elem);
acc.put(departureDate,othersInTheSameDay);
};
}
所以在上面的代码中,编译器不能解析类型为TripResultDTO
的elem对象的任何方法。
不用说,getOutbound
方法以红色突出显示,无法解析。通过查看TripResultsDTO
似乎只是作为Object
而不是TripResultDTO
的实例来处理它的智能感觉很奇怪。你有什么想法为什么可能会发生。
也欢迎任何想法,以更好的方式做我正在做的事情。
通过编译器,哪一个?什么版本的javac?或者它是Eclipse,IntelliJ,其他? – Tunaki
javac 1.8.0_60和IntelliJ 14,我做了,没有运气,或者 – Zahari
@Zahari当我评论'accumulator'方法内的返回块的内容时,两个参数'acc'和'elem'被正确解析为'Map < LocalDate,List>和TripResultDTO类型。 –