cdm/src/main/java/ucar/ma2/ArrayChar.java
static ArrayChar factory(Index index, char[] storage) {
    if (index instanceof Index0D) {
      return new ArrayChar.D0(index, storage);
    } else if (index instanceof Index1D) {
      return new ArrayChar.D1(index, storage);
    } else if (index instanceof Index2D) {
      return new ArrayChar.D2(index, storage);
    } else if (index instanceof Index3D) {
      return new ArrayChar.D3(index, storage);
    } else if (index instanceof Index4D) {
      return new ArrayChar.D4(index, storage);
    } else if (index instanceof Index5D) {
      return new ArrayChar.D5(index, storage);
    } else if (index instanceof Index6D) {
      return new ArrayChar.D6(index, storage);
    } else if (index instanceof Index7D) {
      return new ArrayChar.D7(index, storage);
    } else {
      return new ArrayChar(index, storage);
    }
  }
static ArrayChar factory(Index index, char[] storage) {
    if (index instanceof Index0D) {
      return new ArrayChar.D0(index, storage);
    } else if (index instanceof Index1D) {
      return new ArrayChar.D1(index, storage);
    } else if (index instanceof Index2D) {
      return new ArrayChar.D2(index, storage);
    } else if (index instanceof Index3D) {
      return new ArrayChar.D3(index, storage);
    } else if (index instanceof Index4D) {
      return new ArrayChar.D4(index, storage);
    } else if (index instanceof Index5D) {
      return new ArrayChar.D5(index, storage);
    } else if (index instanceof Index6D) {
      return new ArrayChar.D6(index, storage);
    } else if (index instanceof Index7D) {
      return new ArrayChar.D7(index, storage);
    } else {
      return new ArrayChar(index, storage);
    }
  }
/* create new ArrayChar with given indexImpl and backing store.
Should be private.
@param index use this Index
@param stor. use this storage. if null, allocate.
@return. new ArrayDouble.D<rank> or ArrayDouble object.