add method

This commit is contained in:
Looly 2023-10-19 11:03:41 +08:00
parent af197ba753
commit b865d8b728
2 changed files with 23 additions and 2 deletions

View File

@ -203,7 +203,7 @@ public class Opt<T> {
* @return this
* @throws NullPointerException 如果包裹里的值存在但你传入的操作为{@code null}时抛出
*/
public Opt<T> ifFail(final Consumer<? super Throwable> action) throws NullPointerException{
public Opt<T> ifFail(final Consumer<? super Throwable> action) throws NullPointerException {
Objects.requireNonNull(action, "action is null");
if (isFail()) {
@ -227,7 +227,7 @@ public class Opt<T> {
* @throws NullPointerException 如果包裹里的值存在但你传入的操作为{@code null}时抛出
*/
@SafeVarargs
public final Opt<T> ifFail(final Consumer<? super Throwable> action, final Class<? extends Throwable>... exs) throws NullPointerException{
public final Opt<T> ifFail(final Consumer<? super Throwable> action, final Class<? extends Throwable>... exs) throws NullPointerException {
Objects.requireNonNull(action, "action is null");
if (isFail() && EasyStream.of(exs).anyMatch(e -> e.isAssignableFrom(throwable.getClass()))) {
@ -448,6 +448,17 @@ public class Opt<T> {
return isPresent() ? value : supplier.get();
}
/**
* 如果包裹里元素的值存在则返回该值否则返回传入的操作执行后的返回值
*
* @param supplier 值不存在时需要执行的操作返回一个类型与 包裹里元素类型 相同的元素
* @return 如果包裹里元素的值存在则返回该值否则返回传入的操作执行后的返回值
* @throws NullPointerException 如果之不存在并且传入的操作为空则抛出 {@code NPE}
*/
public Opt<T> orElseOpt(final Supplier<? extends T> supplier) {
return or(() -> Opt.ofNullable(supplier.get()));
}
/**
* 如果包裹里元素的值存在则返回该值否则执行传入的操作
*

View File

@ -86,6 +86,16 @@ public class LogEngineFactory {
logEngine.createLog(LogEngineFactory.class).debug("Custom Use [{}] Logger.", logEngine.getName());
}
/**
* 创建指定日志实现引擎
*
* @param logEngineClass 引擎类
* @return {@link LogEngine}
*/
public static LogEngine createEngine(final Class<? extends LogEngine> logEngineClass) {
return ConstructorUtil.newInstance(logEngineClass);
}
/**
* 决定日志实现
* <p>