当前位置: 首页 > 知识库问答 >
问题:

Java 可选用法在正确的位置 [重复]

施琦
2023-03-14

我正在阅读有关Java 8可选内容的信息,并想知道使用它的正确方法。传统方式,

User user = getUser();
if (user != null) {
 //perform action
}

可选地,

Optional<User> userOptional = getUser();
if (userOptional.isPresent()) {
    User user = userOptional.get();
    //perform action
 }

对于可选,它需要更多的代码行。你能告诉我哪里是有益的吗?

共有1个答案

纪勇军
2023-03-14

您描述的情况是可选 .ifPresent() 的用例,它需要一个表示操作的使用者

getUser().ifPresent(user -> *do the action*);

在实践中,您很少需要的是当前()检查。当您在代码中使用它时 - 暂停一秒钟,很可能您没有充分利用可选API。

 类似资料:
  • 我有一个名为“H2O问题”的家庭作业,我应该实现一个名为H2OBarrier的类,它有3种方法。 HReady,氢原子(线程)就绪时称为的方法 OReady,氧原子(线程)就绪时调用的方法 makeWater,当2个氢原子和1个氧原子准备就绪时称为方法 我应该使用Java可重入锁和条件来执行此操作。 这是我目前为止的代码,我想知道我是否正确地使用了lock和unlock。 我应该在我的 makeW

  • 我已经阅读了很多Java8可选版本,我确实理解这个概念,但在我的代码中尝试实现它时仍然会遇到困难。 虽然我在网上搜索了一些好的例子,但我没有找到一个解释得很好的例子。 我有下一个方法: 这个简单的方法通过传递文件路径来返回文件的md5。正如您所注意到的,如果文件路径不存在(或键入错误),将抛出NoSuchFileException,该方法返回Null。 我希望使用Optional,而不是返回nul

  • 我是一个初学者程序员,我试图做一个简单的计算器,但由于某种原因,按钮似乎不能正常工作,它们要么消失,填满整个面板,要么设置在错误的位置。奇怪的是,当我悬停并在按钮上点击鼠标时,按钮就会出现。我可能会错过一些非常明显的东西,但请帮助(此外,代码不是很干净)。谢谢你! 主要的 计算器按钮 窗

  • 我在react窗口列表元素中使用React/MUI Popover,并且无法正确定位Popover-它总是在窗口的左上角结束(组件无法在锚元素[in the docs])。 所以为了暂时解决这个问题,我决定使用参数来设置一个绝对位置——在我的例子中,就在窗口的中间。那也不行。 我已经查看了Chrome开发工具中的值,一切似乎都正常(即,我使用该工具时确实得到了一个锚定;我得到了有效的位置左/顶值;

  • 问题内容: 我有一个脚本,打算像这样使用: 是一个位置参数,其定义如下: 我希望它是可选的:未指定时,它应该只是。 不幸的是,当我不指定参数时,我得到了。 问题答案: 使用(或如果您需要多个目录) 扩展示例:

  • 我有一个非常基本的登录servlet 当我从登录名调用servlet时。html: 如果输入了正确的用户名和密码,浏览器将正确呈现login\u success。jsp。但是,当我没有输入正确的用户名和密码时,浏览器会将未渲染的html显示为纯文本: 如何让LoginServlet将消息放在正确的位置(在body标签之后)?谢谢