Wieso funktioniert dieser Code hier?

Status
Nicht offen für weitere Antworten.

WeirdAl

Bekanntes Mitglied
Hallo zusammen,
durch Zufall habe ich ein Byte-Array einer Liste hinzugefügt. Ich habe eigentlich gedacht, dass dies nicht funktionieren kann, da ein byte eigentlich ein primitiver Datentyp ist.
Manche würden sagen, jaaaa das ist Autoboxing, aber ich muss für ein Projekt mit Java 1.4 arbeiten und in Eclipse ist auch nur die 1.4er JRE installiert. Daher kann ich das eigentlich ausschließen. Hier der Code der mich verwirrt:

Java:
public static void main(String[] args) {
		final List testList = new ArrayList();
		byte[] testByteArray = new byte[] { 55, 53 };
		byte testResultByte = 0;

		testList.add(testByteArray);

		testResultByte = ((byte[]) testList.get(0))[0];

		System.out.println(testResultByte);

	}

Bislang dachte ich, dass man Arrays von primitiven Datentypen nicht in (Objekt)Listen stecken kann. Habe ich da was verpasst?
Ich hoffe ihr könnt mir da weiterhelfen.

Cu
Alex
 
Du solltest trotzdem mit Generics arbeiten:
Java:
public static void main(String[] args) {
        final List<byte[]> testList = new ArrayList<byte[]>();
        byte[] testByteArray = new byte[] { 55, 53 };
        byte testResultByte = 0;
 
        testList.add(testByteArray);
 
        testResultByte = testList.get(0))[0];
 
        System.out.println(testResultByte);
 
    }
 
Danke für die schnelle Antwort. Gilt das für alle Arrays primitiver Datentypen? Dann hatte bis heute ne große Wissenslücke irgendwie 🙂

Mit Generics kann ich nicht arbeiten, da das Projekt nur mit 1.4 laufen darf (Der Kunde benutzt einen uralten Webserver....)
 
In Java 1.4...? Landei, du hast den Post gut gelesen 😉
Anm.: Ich wollte auch zuerst auch schreiben, dass byte autoboxed würde 😉

Edit: @TO: Ja, ganz grundsätzlich mit allen Arrays.
 
Imho kann man auch Generics verwenden und dann mit einem JDK >= 1.5 den Code für 1.4 kompilieren.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben