in ttl-core/src/main/java/com/alibaba/ttl3/TransmittableThreadLocal.java [181:187]
public static <S> TransmittableThreadLocal<S> withInitialAndGenerator(Supplier<? extends S> supplier, UnaryOperator<S> generatorForChildValue, UnaryOperator<S> generatorForTransmitteeValue) {
if (supplier == null) throw new NullPointerException("supplier is null");
if (generatorForChildValue == null) throw new NullPointerException("value generator for child value is null");
if (generatorForTransmitteeValue == null) throw new NullPointerException("value generator for transmittee value is null");
return new SuppliedTransmittableThreadLocal<>(supplier, generatorForChildValue, generatorForTransmitteeValue);
}