public abstract class Union extends Struct
This class represents a C/C++ union
; it works in the same
way as Struct
(sub-class) except that all members are mapped
to the same location in memory.
Here is an example of C union: [code]
union Number {
int asInt;
float asFloat;
char asString[12];
};[/code]
And its Java equivalent:[code]
public class Number extends Union {
Signed32 asInt = new Signed32();
Float32 asFloat = new Float32();
Utf8String asString = new Utf8String(12);
}[/code]
As for any Struct
, fields are directly accessible:[code]
Number num = new Number();
num.asInt.set(23);
num.asString.set("23"); // Null terminated (C compatible)
float f = num.asFloat.get();[/code]
Struct.BitField, Struct.Bool, Struct.Enum16<T extends Enum>, Struct.Enum32<T extends Enum>, Struct.Enum64<T extends Enum>, Struct.Enum8<T extends Enum>, Struct.Float32, Struct.Float64, Struct.Member, Struct.Reference32<S extends Struct>, Struct.Reference64<S extends Struct>, Struct.Signed16, Struct.Signed32, Struct.Signed64, Struct.Signed8, Struct.Unsigned16, Struct.Unsigned32, Struct.Unsigned8, Struct.UTF8String
MAXIMUM_ALIGNMENT
Constructor and Description |
---|
Union()
Default constructor.
|
Modifier and Type | Method and Description |
---|---|
boolean |
isUnion()
Returns
true . |
address, alignment, array, array, array, array, array, array, array, byteOrder, getByteBuffer, getByteBufferPosition, inner, isPacked, outer, outerOffset, read, readBits, setByteBuffer, setByteBufferPosition, setOuter, setOuterOffset, size, toString, write, writeBits
Copyright © 2005–2016 Javolution. All rights reserved.