### Question:
ReflectionHelper { public static boolean isIterable(Type type) { if ( type instanceof Class && extendsOrImplements( ( Class ) type, Iterable.class ) ) { return true; } if ( type instanceof ParameterizedType ) { return isIterable( ( ( ParameterizedType ) type ).getRawType() ); } if ( type instanceof WildcardType ) { Type[] upperBounds = ( ( WildcardType ) type ).getUpperBounds(); return upperBounds.length != 0 && isIterable( upperBounds[0] ); } return false; } private  ReflectionHelper(); @SuppressWarnings("unchecked") static T getAnnotationParameter(Annotation annotation, String parameterName, Class<T> type); static String getPropertyName(Member member); static Class<?> getType(Member member); static Class<?> getAnnotations(Member member); static Type typeOf(Member member); static Object getValue(Member member, Object object); static void setAccessibility(Member member); static Class<?> loadClass(String name, Class<?> caller); static Type getIndexedType(Type type); static boolean isIterable(Type type); static boolean isMap(Type type); static boolean isList(Type type); static Object getIndexedValue(Object value, Integer index); static Object getMappedValue(Object value, Object key); static boolean containsMember(Class<?> clazz, String property); static boolean containsField(Class<?> clazz, String fieldName); static Field getField(Class<?> clazz, String fieldName); static boolean containsMethod(Class<?> clazz, String methodName); static Method getMethod(Class<?> clazz, String methodName); static Class<?> classForName(String name, Class<?> caller); static Class<?> boxedTyp(Type primitiveType);  }### Answer:
@Test public void testIsIterable() throws Exception { Type type = TestTypes.class.getField( "stringList" ).getGenericType(); assertTrue( ReflectionHelper.isIterable( type ) ); assertTrue( ReflectionHelper.isIterable( TreeSet.class ) ); assertTrue( ReflectionHelper.isIterable( List.class ) ); assertTrue( ReflectionHelper.isIterable( HashSet.class ) ); assertTrue( ReflectionHelper.isIterable( Iterable.class ) ); assertTrue( ReflectionHelper.isIterable( Collection.class ) ); assertFalse( ReflectionHelper.isIterable( null ) ); assertFalse( ReflectionHelper.isIterable( Object.class ) ); }