javolution.io
Class Union
Object
Struct
Union
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:
union Number {
int asInt;
float asFloat;
char asString[12];
};
And its Java equivalent:
public class Number extends Union {
Signed32 asInt = new Signed32();
Float32 asFloat = new Float32();
Utf8String asString = new Utf8String(12);
}
As for any Struct
, fields are directly accessible:
Number num = new Number();
num.asInt.set(23);
num.asString.set("23"); // Null terminated (C compatible)
float f = num.asFloat.get();
- Version:
- 1.0, October 4, 2004
- Author:
- Jean-Marie Dautelle
Nested classes/interfaces inherited from class Struct |
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 |
Constructor Summary |
Union()
Default constructor. |
Method Summary |
boolean |
isUnion()
Returns true . |
Methods inherited from class Struct |
address, array, array, array, array, array, array, array, byteOrder, getByteBuffer, getByteBufferPosition, inner, isPacked, outer, read, readBits, setByteBuffer, setByteBufferPosition, size, toString, write, writeBits |
Union
public Union()
- Default constructor.
isUnion
public final boolean isUnion()
- Returns
true
.
- Overrides:
isUnion
in class Struct
- Returns:
true
- See Also:
Union
Copyright © 2005-2012 Javolution. All Rights Reserved.