我目前創建Map<String, Map<LocalDate, Integer>>
這樣,那裏的Integer
代表秒:如何使用Collectors.summingInt獲取自定義類型而不是整數?
Map<String, Map<LocalDate, Integer>> map = stream.collect(Collectors.groupingBy(
x -> x.getProject(),
Collectors.groupingBy(
x -> x.getDate(),
Collectors.summingInt(t -> t.getDuration().toSecondOfDay())
)
));
我怎麼能代替創建Map<String, Map<LocalDate, Duration>>
?
我注意到['java.time.Duration'](https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html)沒有'toSecondOfDay() '方法。你正在使用其他類型還是'getSeconds()'這個錯誤? –
@DidierL我使用LocalTime來保存持續時間,它在DBMS中看起來更漂亮。 – Alex78191
爲了數據庫表示的緣故,我不認爲濫用Java類型是個好主意。您應該使用特定的轉換器來映射到您選擇的數據庫類型 - 如果默認轉換不起作用。 –