Package | Description |
---|---|
cn.hutool.core.convert.impl |
各种类型转换的实现类,其都为Converter接口的实现,用于将未知的Object类型转换为指定类型
|
cn.hutool.core.lang |
语言特性包,包括大量便捷的数据结构,例如验证器Validator,分布式ID生成器Snowflake等
|
Modifier and Type | Method and Description |
---|---|
protected Opt<?> |
OptConverter.convertInternal(Object value) |
Modifier and Type | Method and Description |
---|---|
static <T> Opt<T> |
Opt.empty()
返回一个空的
Opt |
Opt<T> |
Opt.filter(Predicate<? super T> predicate)
判断包裹里的值存在并且与给定的条件是否满足 (
Predicate.test(T) 执行结果是否为true)
如果满足条件则返回本身
不满足条件或者元素本身为空时返回一个返回一个空的Opt |
<U> Opt<U> |
Opt.flatMap(Function<? super T,? extends Opt<? extends U>> mapper)
如果包裹里的值存在,就执行传入的操作(
Function.apply(T) )并返回该操作返回值
如果不存在,返回一个空的Opt
和 map(java.util.function.Function<? super T, ? extends U>) 的区别为 传入的操作返回值必须为 Opt |
<U> Opt<U> |
Opt.flattedMap(Function<? super T,? extends Optional<? extends U>> mapper)
如果包裹里的值存在,就执行传入的操作(
Function.apply(T) )并返回该操作返回值
如果不存在,返回一个空的Opt
和 map(java.util.function.Function<? super T, ? extends U>) 的区别为 传入的操作返回值必须为 Optional |
Opt<T> |
Opt.ifFail(Consumer<? super Throwable> action)
如果包裹内容失败了,则执行传入的操作(
Consumer.accept(T) )
例如执行有异常就打印结果
Opt.ofTry(() -> 1 / 0).ifFail(Console::log);
|
Opt<T> |
Opt.ifPresent(Consumer<? super T> action)
如果包裹里的值存在,就执行传入的操作(
Consumer.accept(T) )
例如如果值存在就打印结果
{@code
Opt.ofNullable("Hello Hutool!"). |
Opt<T> |
Opt.ifPresentOrElse(Consumer<? super T> action,
VoidFunc0 emptyAction)
如果包裹里的值存在,就执行传入的值存在时的操作(
Consumer.accept(T) )
否则执行传入的值不存在时的操作(VoidFunc0 中的VoidFunc0.call() )
例如值存在就打印对应的值,不存在则用Console.error 打印另一句字符串
{@code
Opt.ofNullable("Hello Hutool!"). |
<U> Opt<U> |
Opt.map(Function<? super T,? extends U> mapper)
|
<U> Opt<U> |
Opt.mapOrElse(Function<? super T,? extends U> mapper,
VoidFunc0 emptyAction)
如果包裹里的值存在,就执行传入的值存在时的操作(
Function.apply(Object) )支持链式调用、转换为其他类型
否则执行传入的值不存在时的操作(VoidFunc0 中的VoidFunc0.call() )
如果值存在就转换为大写,否则用Console.error 打印另一句字符串
String hutool = Opt.ofBlankAble("hutool").mapOrElse(String::toUpperCase, () -> Console.log("yes")).mapOrElse(String::intern, () -> Console.log("Value is not present~")).get();
|
static <T> Opt<T> |
Opt.of(T value)
返回一个包裹里元素不可能为空的
Opt |
static <T> Opt<T> |
Opt.ofBlankAble(T value)
返回一个包裹里元素可能为空的
Opt ,额外判断了空字符串的情况 |
static <T,R extends Collection<T>> |
Opt.ofEmptyAble(R value)
返回一个包裹里
List 集合可能为空的Opt ,额外判断了集合内元素为空的情况 |
static <T> Opt<T> |
Opt.ofNullable(T value)
返回一个包裹里元素可能为空的
Opt |
static <T> Opt<T> |
Opt.ofTry(Func0<T> supplier) |
Opt<T> |
Opt.or(Supplier<? extends Opt<? extends T>> supplier)
如果包裹里元素的值存在,就返回本身,如果不存在,则使用传入的操作执行后获得的
Opt |
Opt<T> |
Opt.peek(Consumer<T> action)
如果包裹里元素的值存在,就执行对应的操作,并返回本身
如果不存在,返回一个空的
Opt
属于 ifPresent(java.util.function.Consumer<? super T>) 的链式拓展 |
Opt<T> |
Opt.peeks(Consumer<T>... actions)
如果包裹里元素的值存在,就执行对应的操作集,并返回本身
如果不存在,返回一个空的
Opt
属于 ifPresent(java.util.function.Consumer<? super T>) 的链式拓展
属于 peek(Consumer) 的动态拓展 |
Modifier and Type | Method and Description |
---|---|
<U> Opt<U> |
Opt.flatMap(Function<? super T,? extends Opt<? extends U>> mapper)
如果包裹里的值存在,就执行传入的操作(
Function.apply(T) )并返回该操作返回值
如果不存在,返回一个空的Opt
和 map(java.util.function.Function<? super T, ? extends U>) 的区别为 传入的操作返回值必须为 Opt |
Opt<T> |
Opt.or(Supplier<? extends Opt<? extends T>> supplier)
如果包裹里元素的值存在,就返回本身,如果不存在,则使用传入的操作执行后获得的
Opt |
Copyright © 2024. All rights reserved.