gpt4 book ai didi

java-8 - 如果其中的代码有任何异常,如何使用 Optional 返回空?

转载 作者:行者123 更新时间:2023-12-01 08:47:53 25 4
gpt4 key购买 nike

Optional/Java8 的用法还很新,我对它的用法有疑问。
我的 API 中有一个函数,它返回一个可以为 null 或为空的字符串。它类似于在电子邮件中查找 id,例如:abc@gmail.com -> abc 是 o/p。

现在这样做的一种方法是:

public Optional<String> getUser(final String emailId) {

if (TextUtils.isEmpty(emailId)) {
return Optional.empty();
}

String userIDSeparator = "@";
int userNameEndIndex = emailId.indexOf(userIDSeparator);

if (userNameEndIndex == -1) {
return Optional.empty();
}

return Optional.of(emailId.substring(0, userNameEndIndex));
}

我想知道是否有任何更简洁的方法来返回 Optional?

另外,Optional 是在 Java8 中引入的,所以代码是否可以与 java7 兼容?我知道 C 中的预处理器不确定是否有类似的东西可用。

笔记:
我没有编译这段代码,所以可能会有一些错误。我想要 Optional 的输入。

谢谢!

最佳答案

嗯,代码当然可以减少。 IE。

public Optional<String> getUser(final String emailId) {
return Optional.of(emailId)
.filter(email -> email.contains("@"))
.map(email -> email.substring(0, email.indexOf("@")));
}

如果此方法可以收到 null值那么你需要改变 Optional.of(emailId)Optional.ofNullable(emailId) .

至于:

Also, Optional was introduced in Java8 so is there any way the code can be java7 compatible?



从来没听说过。可能还有其他库具有与 Java 的 Optional 类型类似的功能,因此在线进行一些研究可能会让您找到正确的位置。

关于java-8 - 如果其中的代码有任何异常,如何使用 Optional 返回空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49348154/

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