In C or C++ out and inout arguments are handled by passing pointers to the data so that if the data is changed, the pointer will be pointing to the new, correct, data. Because Java does not support pointers, each SIDL type and class has a static inner Holder class. This Holder class can hold a single variable or object of the correct type. There are functions get() and set() for getting or setting this object.