-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類型。 –