code: public static ReflectionUtil getInstance() {
  
      if (instance == null) {
        ReflectionUtilImpl impl = null;
        synchronized (ReflectionUtilImpl.class) {
          if (instance == null) {
            impl = new ReflectionUtilImpl();
            instance = impl;
          }
        }
        if (impl != null) {
          // static access is generally discouraged, cyclic dependency forces this ugly initialization to
          // prevent deadlock.
          impl.initialize();
        }
      }
      return instance;
    }
docs: This method gets the singleton instance of this {@link ReflectionUtil}. <br>
  <b>ATTENTION:</b><br>
  Please prefer dependency-injection instead of using this method.
  
  @return the singleton instance.