-3

これら 2 つのオブジェクトが複雑なオブジェクト (ネストされたオブジェクト) である object1 と object2 を比較する Comparator を実装したいと考えています。

私の要件は、object2 に null 値があり、object1 の対応する値が null または null でない場合、コンパレータは true を返す必要がありますが、object2 の値が null ではなく、オブジェクト 1 の現在の値が異なるか null である場合は、返す必要があります。間違い。

これらの値は、オブジェクト内のオブジェクトまたはベース オブジェクトの値である可能性があります。

希望の結果を得るには、compareTo() メソッドをどのように実装すればよいか教えてください。

4

1 に答える 1

1

compareTo メソッドは true または false を返しません。コンパレータは通常動作します。最初に指定されたオブジェクトが 2 番目のオブジェクトよりも小さい場合は -1 を返し、最初に指定されたオブジェクトが 2 番目のオブジェクトよりも大きい場合は 1 を返し、オブジェクトは偶数です

それは次のようになります (2 つのオブジェクトをその中の文字列に基づいて比較したいと考えています):

if (a.getString() == null && a.getString() == null) {
        return 0;    //both of them are null: return  equal
    }
    if (a.getString() == null) {
        return 1;    //first one is null: second is bigger
    }
    if (b.getString() == null) {
        return -1;   //second one is null: first is bigger
    }
    return a.getString().compareTo(b.getString()); //compare the two strings 
                                                   //inside, with the already 
                                                   //existing method from the 
                                                   //String class

コード例を提供しなかったことを考えると、このコードはニーズに一致します

于 2013-06-26T12:04:51.377 に答える