Proxies a binary consumer spying for first parameter.

@param <T> the consumer parameter type
@param consumer the consumer that will be spied
@param param a box that will be containing the spied parameter
@return the proxied consumer
190008
public static <T> Consumer<T> spy1st(Consumer<T> consumer, Box<T> param) {
        return spy(consumer, param);
    }
176339
@Nonnull
	public static <T> ConsumerBuilder<T> consumer(Consumer<Consumer<T>> consumer) {
		return new ConsumerBuilder(consumer);
	}
91874
public static <T> ObjIntConsumer<T> objIntConsumer(CheckedObjIntConsumer<T> consumer) {
        return Unchecked.objIntConsumer(consumer, Unchecked.RETHROW_ALL);
    }
409721
public Link<S, T> to(Consumer<S, T> consumer) {
		this.consumer = consumer;
		return this;
	}
991425
public static <T> Predicate<T> peek(Consumer<T> consumer) {
		return target -> JMLambda
				.getTrueAfterRunning(() -> consumer.accept(target));
	}
692186
@Nonnull
	public static <T> LToFltFunctionBuilder<T> toFltFunction(Consumer<LToFltFunction<T>> consumer) {
		return new LToFltFunctionBuilder(consumer);
	}
26117
@Nonnull
	public static <T> LConsumerBuilder<T> consumer(Consumer<LConsumer<T>> consumer) {
		return new LConsumerBuilder(consumer);
	}
320817
@Beta
    public static <T> Consumer<T> sc(final Object mutex, final Consumer<T> consumer) {
        N.checkArgNotNull(mutex, "mutex");
        N.checkArgNotNull(consumer, "consumer");

        return new Consumer<T>() {
            @Override
            public void accept(T t) {
                synchronized (mutex) {
                    consumer.accept(t);
                }
            }
        };
    }
730211
public static <T> ObjDoubleConsumer<T> objDoubleConsumer(CheckedObjDoubleConsumer<T> consumer) {
        return objDoubleConsumer(consumer, THROWABLE_TO_RUNTIME_EXCEPTION);
    }
1136873
@Nonnull
	public static <T> LToSrtFunctionBuilder<T> toSrtFunction(Consumer<LToSrtFunction<T>> consumer) {
		return new LToSrtFunctionBuilder(consumer);
	}
71193
@Nonnull
	public static <T> LObjLongConsumerBuilder<T> objLongConsumer(Consumer<LObjLongConsumer<T>> consumer) {
		return new LObjLongConsumerBuilder(consumer);
	}
439420
@Nonnull
	public static <T1, T2> LBiObjSrtPredicateBuilder<T1, T2> biObjSrtPredicate(Consumer<LBiObjSrtPredicate<T1, T2>> consumer) {
		return new LBiObjSrtPredicateBuilder(consumer);
	}
1214637
@Nonnull
	public static <T1, T2> BiConsumerBuilder<T1, T2> biConsumer(Consumer<BiConsumer<T1, T2>> consumer) {
		return new BiConsumerBuilder(consumer);
	}
125244
public static <T, U> BiConsumer<T, U> biConsumer(CheckedBiConsumer<T, U> consumer) {
        return biConsumer(consumer, THROWABLE_TO_RUNTIME_EXCEPTION);
    }
624771
@Nonnull
	public static <T, R> LObjIntBoolFunctionBuilder<T, R> objIntBoolFunction(Consumer<LObjIntBoolFunction<T, R>> consumer) {
		return new LObjIntBoolFunctionBuilder(consumer);
	}
550462
@Nonnull
	public static <T1, T2> LToFltBiFunctionBuilder<T1, T2> toFltBiFunction(Consumer<LToFltBiFunction<T1, T2>> consumer) {
		return new LToFltBiFunctionBuilder(consumer);
	}
953066
@Nonnull
	public static <T1, T2> LBiObjDblConsumerBuilder<T1, T2> biObjDblConsumer(Consumer<LBiObjDblConsumer<T1, T2>> consumer) {
		return new LBiObjDblConsumerBuilder(consumer);
	}