Załóżmy, że masz dwa wystąpienia tego samego typu fasoli i chcesz wyświetlić podsumowanie zmian między tymi dwoma wystąpieniami - na przykład masz komponent bean reprezentujący ustawienia użytkownika w aplikacji, a Ty " Chciałbyś móc wyświetlić listę zmian, które zostały zmienione w nowych ustawieniach, które przesyła użytkownik (instancja # 1) w porównaniu do tego, co jest już przechowywane dla użytkownika (instancja # 2).Wspólny algorytm generowania diff pól w dwóch komponentach bean?
Czy istnieje powszechnie używany algorytm lub wzorzec projektowy dla zadania takiego jak to, być może coś, co można wyodrębnić i ponownie użyć dla różnych rodzajów fasoli? (Trudno mi jest wymyślić dobre imię tego typu problemu, aby wiedzieć, co Google). Sprawdziłem commons-beanutils i nic nie wyskoczyło na mnie.
Wystąpił problem z tym kodem. Po pierwsze, zakłada, że oldFields.length jest taki sam jak newFields.length. Potrzebujesz jakiejś logiki, aby określić zupełnie nowe pola i pola, których brakuje. Wreszcie, nie użyłbym pętli foreach, gdy i tak musisz zwiększyć licznik; po prostu użyj "na". –
są to oba wystąpienia tej samej klasy, w jaki sposób ich liczba może być różna? – kgrad
Ponadto, jeśli jest to jednowątkowe, powinieneś używać StringBuilder zamiast StringBuffer. – cdmckay