Gibt es ein Paket, das die Größe von Java-Grundelementen definiert, die ich in mein Projekt importieren kann? Ich mache einige manuelle Bit-Einstellung und ich halte einen Byte-Index. Ich möchte nicht currentByte += 4
machen, wenn ich einen int (magische Zahlen sind verpönt) gesetzt habe, sondern currentByte += <SomePackage>.SIZE_OF_INT
Ich denke, ich kann meine eigenen definieren, aber das ist irgendwie klobig, besonders wenn diese irgendwo verfügbar sind.
Keine Klasse, aber Sie haben Integer.SIZE
und so weiter für Long
und Gleitkomma-Klassen. Sie haben auch *.BYTES
.
Daher ist Integer.SIZE
32, Integer.BYTES
ist 4, Double.SIZE
ist 64 und Double.BYTES
ist 8 usw. usw .; all dies sind int
s, falls Sie sich wundern.
HINWEIS: *.BYTES
sind erst seit Java 8 definiert (danke @Slanec für das Bemerken)
( *.SIZE
erschien in Java 5, aber Sie tun zumindest das, oder?)
Ja, dies wird vom JDK definiert, da JLS selbst die Größe primitiver Typen definiert; Sie haben daher garantiert, dass Sie für diese Konstanten in jeder Java-Implementierung auf jeder Plattform dieselben Werte haben.
Die Spezifikation für die Größe von Primitiven ist in der Java-Sprachspezifikation enthalten Abschnitt 4.2
Die Integraltypen sind byte, short, int und long, deren Werte jeweils 8-Bit-, 16-Bit-, 32-Bit- und 64-Bit-Zweier-Komplement-Ganzzahlen sind, und char, deren Werte 16 sind. Bit vorzeichenlose Ganzzahlen, die UTF-16-Code-Einheiten darstellen (§3.1).
Dies ist der -Standard und wird nicht geändert, sodass Sie sie nicht importieren müssen. Sie können sie als magische Zahlen verwenden (allerdings als fge weist darauf hin, dass es sich um magische Zahlen handelt, die seit Java 5 an sinnvollen Stellen in den verschiedenen Wrapper-Klassen gespeichert sind, und Sie diese verwenden sollten, anstatt sie selbst neu zu definieren.
Tags und Links java primitive-types primitive