2009-04-29 16 views
7

Czy jest możliwe, aby domyślne Eclipse "Generate hashCode() i equals()" użyć getters zamiast odwołań do pól? - tj. czy mogę uzyskać szablon, którego używa?make Eclipse jest równy()/hashCode() użyj getters

Używam Hibernate, a obiekty Proxied są tylko LazyLoaded, gdy używane są gettery, a nie z odwołań do pól. To irytujące, że ciągle go zmieniam.

Oczywistym rozwiązaniem jest samodzielne utworzenie szablonu lub napisanie wtyczki - co wydaje się przesadą.

EDYTOWANIE: Wygląda na to, że nie można ich konfigurować. Postawię to jako pytanie dla grupy narzędzi JBoss (tworzą kilka wtyczek do Hibernate).

+0

nie widzę takiej możliwości w moim Eclipse (zaznaczone menu Refactor) ... gdzie to jest? –

+0

Eclipse 3.4 znajduje się w menu Source. – Damo

Odpowiedz

7

To nie jest rozwiązanie, a raczej obejść - ale możesz spróbować wygenerować equals(), a następnie użyć refaktoryzacji "enkapsulowanego pola", aby zastąpić wszystkie pola, aby użyć funkcji pobierających/ustawiających (działa również w klasie).

+0

To działa! Dzięki. Zmienia cały dostęp do pola w klasie, ale robi to w rozsądny sposób. Musisz także wykonać każde pole indywidualnie. Lepsze niż jakiekolwiek inne obecne rozwiązanie. – Damo

+0

Ta metoda działa również w systemie IntelliJ. – cdmckay

0

użyłem plugin wygenerować hashCode() i equals() z apache commons lang

+0

Łączenie wyszukiwania google nie jest zbyt użyteczne. Wyniki są prawdopodobnie bardzo różne teraz od 5 lat temu. Czy masz link do konkretnej wtyczki, której używałeś? – finnw

+1

To był http://commonclipse.sourceforge.net/index.html Myślę. Naprawiono w komentarzu. – kingoleg

0

dziwne, szablony te nie wydają się być konfigurowane w ogóle. Można uzyskać widok this question. Również this blog. Google prawdopodobnie dostaniesz o wiele więcej.

+0

Dzięki, ale przeczytałem już ten komentarz i wszystko, co Google chciało zaproponować. Commons4E również nie używa getterów. – Damo