Doch das Key-Objekt weiß genau, welcher Schlüssel er ist. Das ist ja der Trick (der sich Polymorphie nennt). Ich erzeuge ja kein neues Key-Objekt, sondern suche nur das passende und gebe es zurück.
Ich habe vorrausgesetzt, dass du im Enum diese Methoden hast (hab ich vorherigem Post schon mal reingeschrieben):
[code=Java]
// Instanz-Methode für einen Key: Passt das übergebene byte-Array (bytes) zu unserem byte-array (this.bytes)?
public boolean equals(byte[] bytes){//Methode zum vergleichem mit einem andere byte-array
return Arrays.equals(bytes, this.bytes);
}
//Statische Methode
public static Keys getKey(byte[] bytes){//Methode zum finden eines Keys bei gegebenem Byte-Array
for(Keys key: values()){//values() liefert alle Werte des Enums als Array
if(key.equals(bytes)){//Prüfen ob der Wert passt
return key; // Enum-Wert zurückgeben
}
return null; // Kein Wert gefunden, NULL zurückgeben
}[/code]Damit findest du zu jedem byte-Stream den passenden key. gibst du also 4,1 ein, so wird POWER zurückgegeben, da nur diese Enum-Konstante das gleiche Byte-Array hat.