docs: @SuppressWarnings({"WeakerAccess", "unused", "unchecked"})
      @Internal
      @UsedByGeneratedCode
      protected Object postConstruct(BeanResolutionContext resolutionContext, BeanContext context, Object bean) {
          DefaultBeanContext defaultContext = (DefaultBeanContext) context;
          Collection<BeanRegistration<BeanInitializedEventListener>> beanInitializedEventListeners = ((DefaultBeanContext) context).beanInitializedEventListeners;
          if (CollectionUtils.isNotEmpty(beanInitializedEventListeners)) {
              for (BeanRegistration<BeanInitializedEventListener> registration : beanInitializedEventListeners) {
                  BeanDefinition<BeanInitializedEventListener> definition = registration.getBeanDefinition();
                  List<Argument<?>> typeArguments = definition.getTypeArguments(BeanInitializedEventListener.class);
                  if (CollectionUtils.isEmpty(typeArguments) || typeArguments.get(0).getType().isAssignableFrom(getBeanType())) {
                      BeanInitializedEventListener listener = registration.getBean();
                      bean = listener.onInitialized(new BeanInitializingEvent(context, this, bean));
                      if (bean == null) {
                          throw new BeanInstantiationException(resolutionContext, "Listener [" + listener + "] returned null from onInitialized event");
                      }
                  }
              }
          }
  
          for (int i = 0; i < methodInjectionPoints.size(); i++) {
              MethodInjectionPoint methodInjectionPoint = methodInjectionPoints.get(i);
              if (methodInjectionPoint.isPostConstructMethod() && methodInjectionPoint.requiresReflection()) {
                  injectBeanMethod(resolutionContext, defaultContext, i, bean);
              }
          }
          if (bean instanceof LifeCycle) {
              bean = ((LifeCycle) bean).start();
          }
          return bean;
      }