サンプルプログラムこの記事は2017年7月12日に書かれたものです。内容が古い可能性がありますのでご注意ください。TweetCompareToBuilderの説明(google翻訳)Comparable.compareTo(Object)メソッドの実装を支援します。EqualsBuilderとHashCodeBuilderで構築されたequals(Object)とhashcode()と一貫しています。equals(Object)を使用してequalを比較する2つのオブジェクトは通常、compareTo(Object)を使用してequalも比較する必要があります。関連するすべてのフィールドは、比較の計算に含める必要があります。派生フィールドは無視されます。同じフィールドは、compareTo(Object)とequals(Object)の両方で同じ順序で使用する必要があります。このクラスの書き込みコードを使用するには、次のようにします。CompareToBuilder().appendSuper(super.compareTo(o).append(this.field1、myClass.field1).append(this.field2、myClass.field2).append(this.field3、myClass.field3).toComparison();}}値はビルダーに追加された順に比較されます。いずれかの比較が0以外の結果を返す場合、その値はtoComparison()によって返された結果になり、その後のすべての比較はスキップされます。リフレクションを使用して追加するフィールドを決定するreflectionCompareメソッドがあります。フィールドはプライベートにできるため、reflectionCompareはAccessibleObject.setAccessible(boolean)を使用して通常のアクセス制御チェックをバイパスします。適切な権限が正しく設定されていない限り、セキュリティマネージャの下では失敗します。明示的に追加するよりも遅くなります。CompareToBuilder.reflectionCompare(this、o);}リフレクションメソッドは、Class.getDeclaredFields()が返す順序でオブジェクトフィールドを比較します。クラスのフィールドが最初に比較され、続いて親クラスのフィールド(クラス階層の下から上の順に)が比較されます。compareToはソート時に利用すると思います。Arraysにそれぞれあるsortメソッドの引数で2番目に入れるものです。昇順の場合は特に気にしないですが、順番を変える際などに利用します。値がObjectの場合は、それぞれどのようにソートするのかを決定します。今回は、java.util.Comparatorを利用してソートする場合で、ItemOrderというクラスをソートするサンプルを作成しました。降順で処理する場合の、通常の実装とCompareToBuilderを比較しています。ToStringBuilder.reflectionToString(this);}}ソースを見る限り、ソートのキーが増えるとComparatorを利用した場合に見づらくなってくると思います。それに比べて、CompareToBuilderを利用すると、1番目のソート条件、2番目のソート条件とappendする為、見やすいと思います。o2)は、マイナスの値、同じなら0を返します。文字列内の変数を値で置き換えます。このクラスはテキストを取り込み、その中のすべての変数を代入します。{variableName}です。文字配列部分が一致するかどうかを調べるために照会できるmatcherクラス。このクラスには、さまざまなファクトリメソッドが用意されています。文字列キーを文字列値にルックアップします。このクラスは、最も簡単な形式の文字列から文字列へのマップを表します。StringBufferよりも柔軟で強力なAPIを提供する構成部分から文字列を作成します。java.text.MessageFormatを拡張し、埋め込みフォーマット要素のプラグイン可能/追加の書式設定オプションを許可します。コモンズBeanUtilsのメソッドに焦点を当てたユーティリティリフレクションメソッド。継承に焦点を当てたユーティリティメソッド。継承階層を取得するためのユーティリティーです。リフレクションによるフィールドとの作業のためのユーティリティ。休止状態のCommonsサンドボックスコンポーネントから適応され、リファクタリングされました。MethodUtilsの後にモデル化されたコンストラクタに焦点を当てたユーティリティリフレクションメソッド。Object.toString()メソッドの実装を支援します。