Gut Jungs, das muss mir einer erklären...

Unicate

Erfahrenes Mitglied
Hi alle zusammen!

Sowas hab ich ja noch nie gesehen und es kotzt mich an! Aber seht selbst die Datei im Anhang.

Könnte mir das mal einer erklären bitte?

Wenn ich zweiten Parameter des "ifs" mit 101 ersetze dann funktionierts, aber warum zur Hölle gehts nicht wie's offensichtlich soll.
 

Anhänge

  • strange.png
    strange.png
    55,3 KB · Aufrufe: 69
Zuletzt bearbeitet:
Das ist eigentlich ganz einfach zu verstehen:
  • Die Operatoren == und != können auch auf Objekte, also auf Referenztypen, angewendet werden. In diesem Fall ist zu beachten, daß dabei lediglich die Gleichheit oder Ungleichheit der Referenz getestet wird. Es wird also überprüft, ob die Objektzeiger auf ein und dasselbe Objekt zeigen, und nicht, ob die Objekte inhaltlich übereinstimmen.
  • Die Methode equals testet, ob zwei Objekte denselben Inhalt haben.
Auf welche Weise hast du ServerMessage.CLIENT_REQUEST_ALIVE deklariert?
 
Grad bei enums ist ja der Sinn der Sache, dass das gleiche Objekt verwendet wird.

Das benutzen von equals würde hier bei einer SUN JRE auch nichts ändern, da hier intern auch mit this == enum2 verglichen wird. Auch wenn es aus Stil-Sicht der schönere Weg mit equals wäre.

Hier vermute ich ist das Problem, dass das eine Enum vom Client und das andere vom Server kommt?
 
Kann man mit enum-Werten Subtraktionen durchführen? Ich vermute, dass hier mit Integer-Objekten statt mit int-Werten gearbeitet wird.
 
Dein Client läuft in einer anderen Instanz als dein Server, deswegen hat die dortige Klasse eine andere Referenz. Integer ist die Wrapper-Klasse für int, und wegen des Autounboxing wird ein Integer-Objekt in einen int-Wert umgewandelt, wenn du es mit einer numerischen Zahl vergleichst. Wenn du aber zwei Integer-Objekte miteinander per == vergleichst, findet kein Autounboxing statt, und die Referenzen der Objekte werden verglichen; diese sind aber wegen der unterschiedlichen Instanzen nicht gleich. Wenn du deine Konstanten statt dessen als int deklarierst, müsste es funktionieren wie erwartet.
 
Zurück