public static Class<?> findCommonElementType(Collection<?> collection) {
      if (isEmpty(collection)) {
         return null;
      }
      Class<?> candidate = null;
      for (Object val : collection) {
         if (val != null) {
            if (candidate == null) {
               candidate = val.getClass();
            }
            else if (candidate != val.getClass()) {
               return null;
            }
         }
      }
      return candidate;
   }