code: @FFDCIgnore(Exception.class)
      public static <T> StaticValue<T> createStaticValue(Callable<T> initializer) {
          if (multiplex) {
              return new Multiplexed<T>(initializer);
          }
          try {
              return new FinalSingleton<T>(initializer == null ? null : initializer.call());
          } catch (Exception e) {
              throw new RuntimeException(e);
          }
      }
docs: Creates a new StaticValue and uses the initializer callable to obtain the
  initial value when {@link #get()} is called.  Note that when not multiplexing
  the initializer is called immediately.
  @param initializer the callable to obtain the initial value.  A {@code null} value
  is used to indicate no initial value.  In this case the {@link #mutateStaticValue(StaticValue, Callable)}
  method can be used to set the static value later.
  @return the new static value