Hallo Tweakers,
In een hobbyproject heb ik een UDP stream die ik uitlees. Deze informatie komt binnen als een byte[]. Nu wil ik graag de inhoud van de byte array in een Java object steken. Nu kan dat natuurlijk door setters te gebruiken:
Aangezien het om een flinke lijst met variabelen gaat die geset moeten worden, vroeg ik mij af: is er wellicht een manier om de code overzichtelijk te houden? Bijvoorbeeld iets wat lijkt op deserialisatie, alleen dan zonder te serializeren?
Ik maak gebruik van Spring Tool Suite en Java 9.
Alvast bedankt voor het meedenken!
In een hobbyproject heb ik een UDP stream die ik uitlees. Deze informatie komt binnen als een byte[]. Nu wil ik graag de inhoud van de byte array in een Java object steken. Nu kan dat natuurlijk door setters te gebruiken:
Java:
1
2
3
4
5
6
7
8
9
| public static void main(String[] args) throws ClassNotFoundException, IOException { byte[] a = new byte[] {-61, 105, 99, 65, 105, 82, -17, 64, -110, -47, 42, 67, -110, -47, 42, 67}; ByteBuffer buffer = ByteBuffer.wrap(a).order(ByteOrder.LITTLE_ENDIAN); UDPPacket udpPacket = new UDPPacket(); udpPacket.setM_time(buffer.getFloat()); udpPacket.setM_lapTime(buffer.getFloat()); udpPacket.setM_lapDistance(buffer.getFloat()); udpPacket.setM_totalDistance(buffer.getFloat()); } |
Java:
1
2
3
4
5
6
7
8
| public class UDPPacket { float m_time; float m_lapTime; float m_lapDistance; float m_totalDistance; // Tientallen variabelen meer // Getters and setters |
Aangezien het om een flinke lijst met variabelen gaat die geset moeten worden, vroeg ik mij af: is er wellicht een manier om de code overzichtelijk te houden? Bijvoorbeeld iets wat lijkt op deserialisatie, alleen dan zonder te serializeren?
Java:
1
| UDPPacket test = (UDPPacket) SerializationUtils.deserialize(a); |
Ik maak gebruik van Spring Tool Suite en Java 9.
Alvast bedankt voor het meedenken!