J avolution v5.5 (J2SE 1.6+)

javolution.io
Class Union

java.lang.Object
  extended by javolution.io.Struct
      extended by javolution.io.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 Class Summary
 
Nested classes/interfaces inherited from class javolution.io.Struct
Struct.BitField, Struct.Bool, Struct.Enum16<T extends java.lang.Enum>, Struct.Enum32<T extends java.lang.Enum>, Struct.Enum64<T extends java.lang.Enum>, Struct.Enum8<T extends java.lang.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
 
Field Summary
 
Fields inherited from class javolution.io.Struct
MAXIMUM_ALIGNMENT
 
Constructor Summary
Union()
          Default constructor.
 
Method Summary
 boolean isUnion()
          Returns true.
 
Methods inherited from class javolution.io.Struct
address, array, array, array, array, array, array, array, byteOrder, getByteBuffer, getByteBufferPosition, inner, isPacked, outer, read, readBits, setByteBuffer, setByteBufferPosition, size, toString, write, writeBits
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Union

public Union()
Default constructor.

Method Detail

isUnion

public final boolean isUnion()
Returns true.

Overrides:
isUnion in class Struct
Returns:
true
See Also:
Union

J avolution v5.5 (J2SE 1.6+)

Copyright © 2005 - 2009 Javolution.