code: public static Class<?> getArrayType (Object pvListObj) {
      	Class<?> lvType = Object.class;
      	if (pvListObj == null) { return lvType; }
      	if (pvListObj.getClass().isArray()) {
      		Object o[] = (Object[]) pvListObj;
      		if (o.length > 0) {
  	    		Class<?> lvClass = o[0].getClass(); 
  	    		
  	    		// !!!!! Specialfall ?????
  	    		if(Map.class.isAssignableFrom(lvClass)) {
  	    			return Object.class;
  	    		}
  	    		
  	    		for (int i = 0; i < o.length; i++) {
  					if (!lvClass.equals(o[i].getClass())) {
  						return lvType;
  					}
  				}
  	    		return lvClass;
      		} else {
      			return o.getClass().getComponentType();
      		}
      	}
      	else if (pvListObj instanceof Collection) {
      		Collection<?> coll = (Collection<?>) pvListObj;
      		if (coll.size() > 0) {
      			Class<?> lvClass = coll.iterator().next().getClass();
      			Iterator<?> it = coll.iterator();
      			while (it.hasNext()) {
  					if (!lvClass.equals(it.next().getClass())) {
  						return lvType;
  					}
      			}
      			return lvClass;
      		} else {
      			return lvType;
      		}
      	}
      	return lvType;
      }
docs: Analysed the objects in an Array/Collection. If all Object from the same class type,
  then is the return value this class. If are several class types in the Array,
  then ist the return class from type Object.
  @param pvListObj
  @return Class, that are in the Array or Collection