code: @SuppressWarnings({ "rawtypes", "unchecked" }) // Using correct types, but wildcards fail to see that.
      private void processType(final Object component, final Context context, final ContextDestroyer contextDestroyer) {
          final com.badlogic.gdx.utils.reflect.Annotation[] annotations = getAnnotations(component.getClass());
          if (annotations == null || annotations.length == 0) {
              return;
          }
          for (final com.badlogic.gdx.utils.reflect.Annotation annotation : annotations) {
              if (typeProcessors.containsKey(annotation.getAnnotationType())) {
                  final Array<AnnotationProcessor<?>> typeProcessorsForAnnotation = typeProcessors
                          .get(annotation.getAnnotationType());
                  // This might get resized in the process, so we're not using an iterator or assigning size.
                  for (int index = 0; index < typeProcessorsForAnnotation.size; index++) {
                      final AnnotationProcessor processor = typeProcessorsForAnnotation.get(index);
                      processor.processType(component.getClass(),
                              annotation.getAnnotation(annotation.getAnnotationType()), component, context, this,
                              contextDestroyer);
                  }
              }
          }
      }
docs: Processes components' class annotations.
  
  @param component its class annotations will be processed.
  @param context used to resolve dependencies
  @param contextDestroyer will register destruction callbacks.