private static Collection<Method> getInitializeMethods(Class<?> classType) {
        final List<Method> initializeMethods = new ArrayList<>();

        Arrays.stream(classType.getMethods())
                .filter(method -> "initialize".equals(method.getName()))
                .filter(method -> void.class.equals(method.getReturnType()))
                .filter(method -> method.getParameterCount() == 0)
                .forEach(initializeMethods::add);

		Arrays.stream(classType.getDeclaredMethods())
				.filter(method -> method.isAnnotationPresent(Initialize.class))
				.forEach(initializeMethods::add);

		return initializeMethods;
	}
private static Collection < Method > getInitializeMethods ( Class < ? > classType ) { final List < Method > initializeMethods = new ArrayList < > ( ) ; Arrays . stream ( classType . getMethods ( ) ) . filter ( method -> "initialize" . equals ( method . getName ( ) ) ) . filter ( method -> void . class . equals ( method . getReturnType ( ) ) ) . filter ( method -> method . getParameterCount ( ) == 0 ) . forEach ( initializeMethods :: add ) ; Arrays . stream ( classType . getDeclaredMethods ( ) ) . filter ( method -> method . isAnnotationPresent ( Initialize . class ) ) . forEach ( initializeMethods :: add ) ; return initializeMethods ; }
Returns a collection of {@link Method}s that represent initializer methods.
A method is an "initializer method" if it either: <br/>
<ol>
<li>has a signature of "public void initialize()"</li>
<li>is annotated with {@link Initialize}</li>
</ol>