code: @Nonnull
    @ReturnsMutableCopy
    public static <ELEMENTTYPE> ELEMENTTYPE [] getConcatenated (@Nullable final ELEMENTTYPE [] aHeadArray,
                                                                @Nullable final ELEMENTTYPE aTail,
                                                                @Nonnull final Class <ELEMENTTYPE> aClass)
    {
      if (isEmpty (aHeadArray))
        return newArraySingleElement (aTail, aClass);
  
      // Start concatenating
      final ELEMENTTYPE [] ret = newArray (aClass, aHeadArray.length + 1);
      System.arraycopy (aHeadArray, 0, ret, 0, aHeadArray.length);
      ret[aHeadArray.length] = aTail;
      return ret;
    }
docs: Get a new array that combines the passed array and the tail element. The
  tail element will be the last element of the created array.
  
  @param <ELEMENTTYPE>
  Array element type
  @param aHeadArray
  The head array. May be <code>null</code>.
  @param aTail
  The last element of the result array. If this element is
  <code>null</code> it will be inserted as such into the array!
  @param aClass
  The element class. Must be present, because in case both elements
  are <code>null</code> there would be no way to create a new array.
  May not be <code>null</code>.
  @return <code>null</code> if both array parameters are <code>null</code> -
  a non-<code>null</code> array with all elements in the correct
  order otherwise.