Merkwürdiges Verhalten der equals Method

raminS

Mitglied
Hallo,

ich habe seit heute in meinem Programm ein sehr merkwürdigen Fehler. Die equals Methode scheint Objekte als gleich zu betrachen, die Objekte völlig verschiedener Klassen sind und daher natürlich auch andere Variablen und Inhalte haben.
Auf einmal funktionieren die ganzen Methoden der ArrayList, wie contains und index of nicht mehr vernünftig und ich habe keine Ahnung, woher dieses Problem kommt da ich weger die equals Methode noch die hashValue Methode irgendwo überschrieben habe.

Kann mir jemand sagen, wie es zu so einem Fehler kommen kann?


Viele Grüße,
Ramin
 
S

SlaterB

Gast
da kann man sich alles mögliche ausdenken, ich vermute z.B. etwas in Richung: Einfügen mehrerer geplant unterschiedlicher Objekte,
die aber letztlich immer dasselbe ist, Werte werden geändert, dann aber gleich bei allen Objekten in der Liste, weil alle dasselbe nur eine Objekt sind,
oder unterschiedliche Objekte aber statische Attribute -> auch überall gleich

ohne Reproduzierbarkeit, ohne festes komplettes Code-Beispiel kann man darüber kaum ernsthaft reden,
sei dir aber sicher dass es auf der Welt noch keinen gesichterten allgemein bekannten Fall gibt, in dem Java spontan so etwas allgemeines falsch macht,
der Fehler wird bei dir liegen, entweder direkt im Code oder nur in der Interpretation der Ergebnisse
 

raminS

Mitglied
Java:
	public void addCollection(final SensorCollection col) {
		if (collection.isEmpty()) {
			col.createSensors();
			sensors = col;
		}
		LogMgmt.ScenarioLog.info("Collection: " + col.getClass().getSimpleName());

		System.out.println("Insert: " + col.name);
		for (SensorCollection cols : collection.values())
			System.out.println("check- " + cols.name + " - " + cols.equals(col));
		collection.put(col.name, col);
	}

Hi,

ja da hast du sicher Recht, dass der Fehler irgendwo bei mir liegt. Nur da ich nichts geändert habe, was direkten Einfluss auf equals haben könnte, kann ich es mir nicht erklären und weiß auch nicht was ich hier angeben könnte. In dem Abschnitt oben sammle ich die Objekte erstmal in einer HashMap. Die for Schleife hat meinen Verdacht bestätigt. Ich bin die Zeilen auch schon mit dem Debugger durchgelaufen und es handelt sie um Objekte mit völlig verschiedenen ObjectIds.
 
S

SlaterB

Gast
ich kann aus deinem Posting kein Ziel herauslesen deshalb zur Sicherheit nochmal:
ohne vollständigen Code habe ich persönlich zumindest nichts weiter zu sagen,

anscheinend tritt das Problem bei dir wiederholt auf, anscheinend ist ein Interface/ eine Oberklasse SensorCollection betroffen,
vielleicht reicht eine oder wenige Subklassen,
du müsstest schon diese Klassen und den vorherigen Befüllungscode der Map posten, eben alles für ein zusammenhängendes Programm,
dann kann man vielleicht etwas klären, noch nicht
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Thallius Merkwürdiges Verhalten von Swingworker.cancel() Allgemeine Java-Themen 2
T Merkwürdiges Thread-Verhalten Allgemeine Java-Themen 6
Tommy Nightmare Merkwürdiges Verhalten bei der Datenzuweisung Allgemeine Java-Themen 4
Thallius Swing Merkwürdiges Verhalten beim Panel Tausch Allgemeine Java-Themen 3
Thallius Merkwürdiges StringBuilder verhalten (Char Encoding) Allgemeine Java-Themen 6
P Applet-Zugriffsrechte: merkwürdiges Verhalten Allgemeine Java-Themen 4
M merkwürdiges Verhalten von JUnit4 Allgemeine Java-Themen 2
A Streams: merkwürdiges Verhalten Allgemeine Java-Themen 7
A Streams - merkwürdiges Verhalten Allgemeine Java-Themen 2
V Merkwürdiges For-Loop Problem Allgemeine Java-Themen 7
javamax2000 Sehr sonderbares Verhalten Allgemeine Java-Themen 6
kodela Unterschiedliches Verhalten von BufferedReader Allgemeine Java-Themen 3
J Unvorhersehbares Verhalten - benutze ich die falsche Bedingungsprüfung oder brauche ich Threads? Allgemeine Java-Themen 12
N Best Practice Allgemeines Verhalten für ein Interface implementieren? Allgemeine Java-Themen 7
F JTable Pfeiltasten-Verhalten Allgemeine Java-Themen 1
W LocalDateTime Verhalten unerklärlich Allgemeine Java-Themen 1
C Unterschiedliches Verhalten Editor und deployte Application Allgemeine Java-Themen 3
S Threads ThreadPoolExecutor eigenartiges verhalten Allgemeine Java-Themen 5
A Java Verhalten bei parallelem Aufruf derselben Methode?? Allgemeine Java-Themen 2
M Threads Viele Aufrufe aus Thread, komisches Verhalten Allgemeine Java-Themen 8
S getChildAt() Verhalten Allgemeine Java-Themen 4
S Frage zu Threads (Sichtbarkeit und Verhalten) Allgemeine Java-Themen 11
1 Collections Generics, internes Verhalten Allgemeine Java-Themen 16
S Collections Unverständliches Verhalten... Allgemeine Java-Themen 4
M Nach Programmdurchlauf werden Zeichen falsch dargestellt + Anderes Verhalten unter Windows Allgemeine Java-Themen 6
C Komisches Verhalten zwischen Set und List bei contains Allgemeine Java-Themen 6
S (Doppel)Klick-Verhalten vom Desktop unter Java imitieren. Allgemeine Java-Themen 5
A Seltsames Verhalten von JUnit-Tests im Zusammenspiel mit Ant Allgemeine Java-Themen 6
S Verhalten von System.getenv() in Ubuntu / Linux Allgemeine Java-Themen 12
hdi Verhalten bei nicht behandelten Exceptions Allgemeine Java-Themen 2
J Rätselhaftes Verhalten von Collections Allgemeine Java-Themen 5
M Unerklärliches Verhalten bei Variableninitialisierung Allgemeine Java-Themen 11
S Verhalten der Klasse TreeSet... Allgemeine Java-Themen 4
S Jar und Exe verhalten sich unterschiedlich unter Vista Allgemeine Java-Themen 8
M Seltsames Verhalten eines StringReaders Allgemeine Java-Themen 2
spacegaier HeapSpace der VM ändern -> Verhalten von JARs und EXEs Allgemeine Java-Themen 10
M JList seltsames verhalten. Allgemeine Java-Themen 5
K Seltsames Verhalten von byte[] und Strings Allgemeine Java-Themen 6
S Seltsames Verhalten von split() Allgemeine Java-Themen 3
K Überschreiben von 'static'-Methoden hat anderes Verhalten? Allgemeine Java-Themen 2
mihe7 equals und instanceOf pattern matching Allgemeine Java-Themen 9
P Strings: equals vs == Allgemeine Java-Themen 47
F Methoden hashCode() & equals() Allgemeine Java-Themen 13
J Equals Mock Objekte Allgemeine Java-Themen 5
J Mockito - Objekte miteinander vergleichen (equals) Allgemeine Java-Themen 6
J Probleme mit CodeCoverage und Lombok Equals Allgemeine Java-Themen 1
S equals-Methode bestimmer Klassen abfangen Allgemeine Java-Themen 2
T Zwei Wortendungen vergleichen ohne .equals Allgemeine Java-Themen 10
C Object.equals() liefert falschen Wert? Allgemeine Java-Themen 14
T Collections TreeSet.contains ruft nicht .equals? Allgemeine Java-Themen 4
H Problem mit der .equals()-Methode Allgemeine Java-Themen 2
T Compiler-Fehler not equals Allgemeine Java-Themen 22
I HashMap key wird nicht erkannt trotz überschriebener equals/hashCode Methode Allgemeine Java-Themen 6
V ArrayList vergleichen mit .equals? Allgemeine Java-Themen 13
A mit .equals Array befüllen schlägt teilweise fehl Allgemeine Java-Themen 3
G Probleme mit equals Allgemeine Java-Themen 3
tuttle64 equals() und == Allgemeine Java-Themen 4
B Probleme mit eigener equals Methode Allgemeine Java-Themen 18
H double dispatch und equals(Object) Allgemeine Java-Themen 6
S equals - Identität ändern bei Vererbung? Allgemeine Java-Themen 5
fastjack jUnit und Test von equals, hashCode, toString Allgemeine Java-Themen 11
K Collection.contains()/retainAll() mit Referenzgleichheit statt equals()? Allgemeine Java-Themen 2
J Best Practice für implementierung von equals(...) Allgemeine Java-Themen 7
M equals & compareTo Allgemeine Java-Themen 15
M Warum Strings mit equals vergleichen... Allgemeine Java-Themen 6
T Wie intelligent ist dieses überschriebene .equals() ? Allgemeine Java-Themen 13
G Objektvergleich mit equals Allgemeine Java-Themen 5
vogella Überschreiben von equals und hashcode für Collection Allgemeine Java-Themen 7
M String#equals(), Probleme mit großen Strings? Allgemeine Java-Themen 4
André Uhres equals überschreiben Allgemeine Java-Themen 31
F Problem: mehrere Interfaces definieren equals() neu Allgemeine Java-Themen 24
A equals() macht nicht, was es soll Allgemeine Java-Themen 4
B Equals Methode überschreiben mit Array Allgemeine Java-Themen 2
M equals() != compareTo() ? Allgemeine Java-Themen 3
M String mit equals() vergleichen - Frage Allgemeine Java-Themen 3
S equals überladen Allgemeine Java-Themen 15
S Mal was allgemeines zu equals() Allgemeine Java-Themen 12
J Arrays vergleichen mit equals Allgemeine Java-Themen 8

Ähnliche Java Themen

Neue Themen


Oben