UP = new Function>() { @Ov-6ren">
gpt4 book ai didi

java - "Flatten"在 guava 和 java 7 中可选

转载 作者:行者123 更新时间:2023-11-30 01:55:04 24 4
gpt4 key购买 nike

我正在使用 guava 20.0 和 java 7。我有 Guava 功能

public static Function<String, Optional<String>> UP 
= new Function<String, Optional<String>>() {
@Override
public Optional<String> apply(String f) {
if (f.equals("test"))
return Optional.absent();
return Optional.of(f.toLowerCase());
}
};

这段代码:

    Optional<String> strNormal = Optional.of("test");
Optional<String> str = Optional.absent();
System.out.println("strNormal = " + strNormal.transform(UP));
System.out.println("str = " + str.transform(UP));

打印:

strNormal = Optional.of(Optional.absent())
str = Optional.absent()

但是在这两种情况下我如何接收Optional.absent()。可能有类似 map 功能的可选功能。

最佳答案

已经有人建议在 Guava 的 Optional 中添加这个“ map ”功能。然而,它是 rejected因为 Optional 被视为遗留并将被卡住。

最好的选择是编写一个实用函数,例如:

public static Optional<F> transform(Optional<T> optional, Function<T, F> transformer) {
try {
return optional.transform(transformer);
catch (NullPointerException e) {
return Optional.<F>.absent()
}
}

关于java - "Flatten"在 guava 和 java 7 中可选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54811030/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com