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

if/ther[复制]的可选方式

尉迟鑫鹏
2023-03-14

我试图通过使用Java Optional来避免传统的if/else块。但我仍然不理解如何实施下一个要求:

    if (x != null)
       foo1();
    else
       foo2();

public void foo1(){
   print("X not null");
}

public void foo2(){
   print("X is null");
}

谢啦

共有2个答案

耿弘阔
2023-03-14

我试图避免传统的if/any

这就是问题所在。没有理由重写您提供给Optional的代码段。你无论如何都不会从中受益。

if-else是一个控制流语句,而Optional是一个util,它指示没有返回值,并使用一系列类似函数的方法来很好地处理它。

如果您正在寻找快捷方式,或更精确的表达方式,请使用三元运算符

print(x != null ? "X not null" : "X is null");

否则,请保持原样。你总能找到一些更有趣的玩伴。

祁永嘉
2023-03-14

从jdk-9可以使用ifPresentOrElse

public void ifPresentOrElse​(Consumer<? super T> action,
                        Runnable emptyAction)

代码

Optional.ofNullable(x).ifPresentOrElse(x->foo1(), ()->foo2());
 类似资料:
  • 我试图将不可复制类型的(STL-)容器打包到std::可选,例如: 但是编译器(GCC 7.2)抱怨 错误:使用已删除的函数“MyClass::MyClass(const MyClass 并呈现出深刻的“来自……”堆栈进入类型_traits(以及更多),它检查std::是否可以在std::列表上构建。我怀疑编译器在那里发现容器(示例中的std::list)是可复制可构造的,但没有检查容器的值类型是

  • 你好,我有两个代码示例 if/else if/else语句 可选语句 所以我的问题是这两者在性能方面是如何比较的(我在实际代码上有大约15-20个if-else语句)? 是否值得重构代码可读性与性能之间的关系,或者是对选项的误用? 另外,如果if/else-if语句增长到100+时,性能损失是什么? 提前致谢

  • 我是JavaScript新手,如果这是一个愚蠢的问题,我很抱歉! 我正在使用Flask制作一个web应用程序,用于编写学校报告。用户选择的输入之一是孩子的性别,这将为变量指定代词。他们使用单选按钮选择性别。 但是,我的问题是总是返回“if”语句。代码将运行,但它始终包含来自此语句的信息。 任何帮助都将不胜感激!

  • 问题内容: 我有4个复选框。我希望用户仅选择其中两个。如何设置该限制? 问题答案: 您可以轻松地使用一个变量来存储当前选中的复选框的数量…然后调用任何时间,检查该变量,如果它已经是要选中的第三个复选框,则只需将其设置为再次取消选中即可。 假设您首先取消选中所有复选框。所以你也是: 然后设置: (我尚未测试过代码,但应该可以。)

  • 我正在使用php和mysqli创建登录页面,但是,当我键入错误的用户名和密码时,它无法显示错误消息。 如果我输入了错误的用户名,它只是无法登录,但$error没有出现,我试图将其更改为echo,但出现了错误,在我登录或键入任何内容之前,它将始终回显错误消息。我认为这意味着代码总是运行else语句。 有人知道我的代码出了什么问题吗?

  • 我有可选的问题,我不知道如何处理它。 如何将此if更改为可选?