2

グアバの比較チェーンは、比較を遅延して評価することになっていませんか? 以下のコードでは、NullComparator (apache) はゼロ以外の値を返しますが、チェーンは終了しませんか?

docsから: ComparisonChain 実装は、入力の compareTo および compare メソッドの呼び出しを停止し、そのうちの 1 つがゼロ以外の結果を返すとすぐに停止します。

    String x = null;
    String y = "y";
    ComparisonChain.start().compare(x,y, new NullComparator(false)).
            compare(x.getBytes().toString(), y.getBytes().toString()).result();

注: 上記は単なる例です。多分これはより良い例でしょう

ComparisonChain.start().compare(x,y, new NullComparator(false)).
        compare(x.getBytes(), y.getBytes(), UnsignedBytes.lexicographicalComparator()).result();
4

2 に答える 2