public @NotNull <T> List<T> getComponentInstancesOfType(@NotNull Class<T> componentType) {
    List<T> result = new ArrayList<>();
    getPicoContainer().getComponentAdapters().forEach(componentAdapter -> {
      Class<?> descendant = componentAdapter.getComponentImplementation();
      if (componentType == descendant || componentType.isAssignableFrom(descendant)) {
        //noinspection unchecked
        T instance = (T)componentAdapter.getComponentInstance();
        // may be null in the case of the "implicit" adapter representing "this"
        if (instance != null) {
          result.add(instance);
        }
      }
    });
    return result;
  }
public @NotNull <T> List<T> getComponentInstancesOfType(@NotNull Class<T> componentType)