CodeSOD: 機能的に、日付 ノート

CodeSOD: 機能的に、日付

日付は、整数のような単純な数学的実体とは異なり、複雑なデータ型であり、しばしば予期せぬ課題を提示します。この複雑さにもかかわらず、関数型プログラミングの原則は日付処理に効果的に適用できます。しかし、一部の開発者はこれに苦労しており、問題のあるJavaコードの例がそれを物語っています。この例では、2つのLocalDateTimeオブジェクトを年、月、日で比較するために、3つのラムダ関数のリストを使用しています。これらの関数をストリーム化し、日付に適用し、最初に見つかった0以外の差を返し、すべての差が0の場合はデフォルトで0を返します。著者は、このアプローチを不必要に複雑で根本的に欠陥があると見なし、強い非難を表明しています。コードの提出者は、この複雑なロジック全体を、1行の洗練されたコードに置き換えました。この優れたソリューションは、LocalDateTimeオブジェクトをLocalDateオブジェクトに変換した後、組み込みのcompareToメソッドを利用しています。これは、Javaで日付比較を処理するための、より慣用的で効率的な方法を示しています。