2016-09-10 9 views
0

私はオブジェクトを深く比較し、ウェブページの違いを強調表示するという問題に悩まされています。それは4つのドメインクラス、ServerTypes,Server,Components & Propertiesを有する。これらはすべて豆でつながっています。オブジェクトを深く比較し、ウェブページの違いを提示

以下は上記のドメインクラスのコードスニペットです。

class ServerTypes { 

    private List<Server> server; 

    //getters&setters 
} 

    class Server { 

    private List<Components> components; 
    //getters & setters 
    } 

    class Components { 

    private List<Properties> properties; 
    //getters & setters 

    } 

    class Properties { 
    private List<String> prop; 
    //getters & setters 

} 

ServerTypes->サーバー - > Components-> [プロパティ

豆は、上記の階層に依存します。私は、サービスクラスの各プロパティをループし、データを抽出してから、設定ファイルにあるものと比較します。

ServerTypes、Server、ComponentsおよびPropertiesのすべてのオブジェクトで比較が行われます。クラス。

問題が発生すると、各オブジェクトをループして詳細な比較をするのが難しくなります。その上で、私はこのアプローチでウェブページの違いを示すのに苦労しています。

ここで才能から、各オブジェクトをループして粗い比較を行うのではなく、賢明で簡単な方法でそれを行うという提案はありますか?

私は可能な限り最良の方法でこれを提示しようとしました。まだ不明な点がありましたら、お気軽にお知らせください。質問を編集していただければ幸いです。

多くの方々のおかげです。

が、私はそれを使ったことがない、しかし、私が見ることはよさそうだ:

答えて

0

(1)オブジェクトの比較

あなたはjaversを試みることができます。私は自分のサイトから例を取った(ここでは)

Diff diff = javers.compare(person1, person2); 

List<ValueChange> changesByType = diff.getChangesByType(ValueChange.class); 
for (ValueChange valueChange : changesByType) { 
    System.out.println(valueChange); 
} 

出力:

とvalueChange {globalId: '人/#ペット/ 0'、プロパティ: '名前'、OLDVAL:「猫、 newValに '犬'}とvalueChange {globalId: '人/#ペット/ 0'、プロパティ '年齢'、 OLDVAL: '1'、newValに: '2'}

この上の別の他の回答:Is there a Java library that can "diff" two Objects?


(2)JSON比較

ます。また、比較を実行するために、JSONに、あなたのオブジェクトを変換することができます。次に、diffは単純なテキスト比較になります。


(3)どのようにそれを表示する方法については

を表示するには、私は他の人が、オンラインの比較を表示しているかを見てみます:

関連する問題