Ich krieg es einfach nicht hin, wie kann ich im Groovy kontrollieren ob ein Objekt in einer ArrayList vorhanden ist?
Hier der Initialcode, welcher nicht funktioniert:
// Get the roles of the current user def userRoleList = userInstance.getRoles() // Get all roles def roleList = Role.list()
// Check if one of the roles are linked to an user roleList.each() { if(userRoleList.contains(it)) { println "Role " + it.authority + " is linked" } else { println "Role " + it.authority + " is NOT linked" } }
Hier noch der Code von der Methode getRoles() von der Klasse User:
public getRoles() { UserRole.findAllByUser(this).collect { it.role } }
Die Methode .contains() gibt immer false zurück. Ist mein Ansatz falsch?
Eine DomainClass hat nicht automatisch eine angepasste Implementierung der equals-Methode. Daher greift die Standard-Implementierung, die auf Objekt-Identität prüft. Wenn du eine passende equals-Methode in deiner Klasse UserRole einbaust, sollte es funktionieren.
Kleiner Hinweis noch: Wenn du equals implementierst, solltest du auch hashCode implementieren.
Danke für deinen Tipp, werde mal versuchen diesen Ansatz anzugehen.