Hoi
Even de cryptische titel uitleggen:
ik ben bezig met een practicum met AspectJ waarbij ik moet bepalen of een equals functie goed is. Hier hebben we 3 checks voor gevonden, als deze alle drie 'okay' zijn, dan is de equals functie ook werkend vinden we.
- Als de class 'equals' overridet, moet de class ook hashCode overriden.
- Hashcode moet bij dezelfde objecten dezelfde hash geven (vrij logisch)
- Zowel equals als hashCode moeten opdezelfde set velden werken. Als velden aan de hand van andere velden worden berekend is het niet nodig deze mee te nemen.
Bron: http://www.javapractices.com/Topic17.cjp
De hashcode-functie kan ik vrij makkelijk controleren door een aantal malen die op het object los te laten, echter vraag ik me af hoe ik nou kan controleren of een klass nou ook echt een functie overridet.
Kan iemand mij mischien een bump in de goede richting geven?
Ik heb de documentatie van AspectJ zo goed en zo kwaad als het gaat (het is vrij droge kost) door proberen te zoeken op dit onderwerp, maar kan het niet vinden.
Even de cryptische titel uitleggen:
ik ben bezig met een practicum met AspectJ waarbij ik moet bepalen of een equals functie goed is. Hier hebben we 3 checks voor gevonden, als deze alle drie 'okay' zijn, dan is de equals functie ook werkend vinden we.
- Als de class 'equals' overridet, moet de class ook hashCode overriden.
- Hashcode moet bij dezelfde objecten dezelfde hash geven (vrij logisch)
- Zowel equals als hashCode moeten opdezelfde set velden werken. Als velden aan de hand van andere velden worden berekend is het niet nodig deze mee te nemen.
Bron: http://www.javapractices.com/Topic17.cjp
De hashcode-functie kan ik vrij makkelijk controleren door een aantal malen die op het object los te laten, echter vraag ik me af hoe ik nou kan controleren of een klass nou ook echt een functie overridet.
Kan iemand mij mischien een bump in de goede richting geven?
Ik heb de documentatie van AspectJ zo goed en zo kwaad als het gaat (het is vrij droge kost) door proberen te zoeken op dit onderwerp, maar kan het niet vinden.