code: public <T> T get(T defaultValue, Class<T> beanType, CentralDogmaBeanConfig overrides,
                       long initialValueTimeout, TimeUnit initialValueTimeoutUnit)
              throws TimeoutException, InterruptedException {
          return get(defaultValue, beanType, (T x) -> {
          }, overrides, initialValueTimeout, initialValueTimeoutUnit);
      }
docs: Returns a newly-created bean instance with some or all of its settings overridden.
  
  @param defaultValue a Java bean annotated with {@link CentralDogmaBean}. The default value is used before
  initialization.
  @param beanType the type of {@code bean}
  @param overrides the {@link CentralDogmaBeanConfig} whose properties will override the settings
  specified by the {@link CentralDogmaBean} annotation
  @param initialValueTimeout when a value larger than zero given to this argument, this method
  tries to wait for the initial value to be fetched until the timeout
  @param initialValueTimeoutUnit the {@link TimeUnit} of {@code initialValueTimeout}
  
  @return a new Java bean whose getters return the latest known values mirrored from Central Dogma
  
  @throws TimeoutException when {@code initialValueTimeoutMillis} is positive and
  it failed to obtain the initial value within configured timeout
  @throws InterruptedException when {@code initialValueTimeoutMillis} is positive and
  it got interrupted while waiting for the initial value