The next update will be available on Wednesday, December 18, in the early evening (GMT+1).
This update will not yet replace the Java version, instead it is the actual content update. We'll provide more information about the transition together with the update.
Um was für ein Objekt handelt es sich denn genau? Ganz so einfach funktioniert das leider nicht direkt: Du musst dafür irgendeine Form von Serialisierung bzw. Deserialisierung durchführen. Ein paar Objekte (zB String) kannst du direkt zu einem byte[] umwandeln und wieder zurück, bei anderen Objekte hingegen musst du dich selber darum kümmern.
Java bietet von Haus aus das Serializable Interface - wenn dein Objekt nur primitive Datentypen (oder andere Serializable Objekte) enthält, kann es damit selber die Serialisierung und Deserialisierung durchführen. Wenn dein Objekt also das Interface Serializable implementiert, kannst du es zB mit einem ObjectOutputStream und ObjectInputStream serialisieren und deserialisieren (mit writeObject() und readObject()
Java
//Convert a byte array into an object via Serializable interface
try(ObjectInputStream is = new ObjectInputStream(new ByteArrayInputStream(array))){
Alternativ kannst du deine eigene Serialisierung durchführen, zB mithilfe eines ByteBuffer. Die Variante ist zwar nicht ganz so bequem, allerdings wesentlich performanter und in kritischen Situationen daher zu bevorzugen. Beispiel:
Java
//Write Vector3f to byte array
Vector3f pos = new Vector3f(1234, 567, 890);
ByteBuffer bb = ByteBuffer.allocate(12);
bb.putFloat(pos.x);
bb.putFloat(pos.y);
bb.putFloat(pos.z);
byte[] array = bb.array();
//Read Vector3f from a byte array
Vector3f pos = new Vector3f();
ByteBuffer bb = ByteBuffer.wrap(array);
pos.x = bb.getFloat();
pos.y = bb.getFloat();
pos.z = bb.getFloat();
Display More
In manchen Fällen i.V.m. Datenbanken ist es sonst aber auch manchmal eine gute Option, wenn die einzelnen Felder auch als einzelne Daten gespeichert werden. Das bietet sich nicht immer an, aber bei Dingen wie Positionen oder Rotationen kann man das durchaus machen. D.h. die Datenbank hätte nicht eine einzelne Spalte "position", sondern drei Spalten "x", "y" und "z" (wo direkt die 3 Floats eines Vectors gespeichert werden). Performancemäßig am schnellsten.
Participate now!
Don’t have an account yet? Create a new account now and be part of our community!