Value (int index, boolean create) { if (0 > index || index >= myArraySize) return null; if (create && null == myArray[index]) { myArray[index] = mySingleValue ? new SingleValue() : new ComplexValue(); } return myArray[index]; }