Man könnte die Buffers, die als Teil des java.nioPakets bereitgestellt werden, verwenden, um die Konvertierung durchzuführen.
Hier hat das byte[]Quellarray eine Länge von 8, was der Größe entspricht, die einem longWert entspricht.
Zuerst wird das byte[]Array in a eingeschlossen ByteBuffer, und dann wird die ByteBuffer.getLongMethode aufgerufen, um den longWert zu erhalten :
ByteBuffer bb = ByteBuffer.wrap(new byte[] {0, 0, 0, 0, 0, 0, 0, 4});
long l = bb.getLong();
System.out.println(l);
Ergebnis
4
Ich möchte mich bei dfa für den Hinweis auf die ByteBuffer.getLongMethode in den Kommentaren bedanken .
Obwohl dies in dieser Situation möglicherweise nicht anwendbar ist, besteht die Schönheit des Buffers darin, ein Array mit mehreren Werten zu betrachten.
Wenn wir beispielsweise ein 8-Byte-Array hätten und es als zwei intWerte anzeigen wollten , könnten wir das byte[]Array in ein ByteBuffer, das als a angesehen wird, einschließen IntBufferund die Werte erhalten durch IntBuffer.get:
ByteBuffer bb = ByteBuffer.wrap(new byte[] {0, 0, 0, 1, 0, 0, 0, 4});
IntBuffer ib = bb.asIntBuffer();
int i0 = ib.get(0);
int i1 = ib.get(1);
System.out.println(i0);
System.out.println(i1);
Ergebnis:
1
4