code: private T[] convert(final List source) throws FrameworkException {
  
  		final ArrayList<T> result = new ArrayList<>();
  
  		for (final Object o : source) {
  
  			if (componentType.isInstance(o)) {
  
  				result.add((T)o);
  
  			} else if (componentType.equals(Integer.class) && o instanceof Double) {
  
  				result.add((T)(Integer)((Double)o).intValue());
  
  			} else if (o != null) {
  
  				final T value = fromString(o.toString());
  
  				if (value == null) {
  					throw new FrameworkException(422, "Invalid input", new NumberToken(this.getDeclaringClass().getSimpleName(), this));
  				}
  
  				result.add(value);
  
  			} else {
  
  				// dont know
  				throw new IllegalStateException("Conversion of array type failed.");
  			}
  		}
  
  		return (T[])result.toArray((Object[])Array.newInstance(componentType, 0));
  	}
docs: ----- private methods -----