2017-11-01 5 views
0

Ich versuche, clusterweit eindeutige IDs in einem verteilten System zu generieren, und ich habe gewählt, um UUIDs zu generieren. UUIDs sind hexadezimale 128-Bit-Zahlen, die eine sehr, sehr geringe Wahrscheinlichkeit haben, zweimal erzeugt zu werden. Meine Frage ist, wie würde ich die Hex-Zeichenfolge in einen langen Wert konvertieren? Unten sind mein Code und seine Ausgabe. Ich habe es anders versucht, aber ich bekomme immer eine Ausnahme.Wie konvertiert man UUID

Code:

for (int i = 0; i < 10; i++) { 
    UUID uuid = UUID.randomUUID(); 
    System.out.println("Generated UUID: " + uuid); 
} 

Ausgang:

Generated UUID: 7a8c2c99-a378-4481-a4d5-0b90dae8d220 
Generated UUID: d93da730-a261-4617-a0cb-eaa3441a956d 
Generated UUID: bfaa2c28-fbde-42aa-a3ff-3db0709b5fa9 
Generated UUID: df131f0c-b3aa-4132-bcc7-1268f21b0a1b 
Generated UUID: 066ecfd0-144b-441d-848a-8b2b425d93f8 
Generated UUID: aeaabb6b-a03e-4afe-ac2e-a08902c8490c 
Generated UUID: 19953f8d-b9f5-418e-9577-6222ef3ab3f8 
Generated UUID: d936862f-7e63-4384-9694-24714b8953ab 
Generated UUID: f0f979e4-d570-4867-afc0-fbf92ef3c570 
Generated UUID: e504165f-823e-4dea-b520-a323032bd37c 

Antwort

1

das nicht möglich ist. Der primitive Typ long in Java ist ein 64-Bit-Typ. Sie können 128 Bits in 64 Bits ohne Informationsverlust nicht anpassen.