gpt4 book ai didi

java - 没有 if 和 switch 的条件语句

转载 作者:搜寻专家 更新时间:2023-11-01 01:20:16 25 4
gpt4 key购买 nike

我有这段代码:

public static void main(String[] args){
boolean greeting = true; //or false
if(greeting)
hello();
}

public static void hello(){
System.out.println("Hello")
}

如果 greeting 的值设置为 true,我想在不使用 (if,switch) 的情况下调用 hello 方法

是否可以在不使用 if 语句或 switch 的情况下重写这个程序?如果是怎么办?

最佳答案

您可以使用枚举

enum Greeting {
GREETING(() -> System.out.println("hello")),
NO_GREETING(() -> {});

private final Runnable greeting;

private Greeting(Runnable r) {
greeting = r;
}
public void greet() {
greeting.run();
}
}

然后有

public static void main(String[] args) {
Greeting gr = Greeting.GREETING; // or Greeting.NO_GREETING
// or if you insist on the boolean
// Greeting gr = (greeting) ? Greeting.GREETING : Greeting.NO_GREETING;
gr.greet();
}

这也可以扩展为拥有类似的东西

CORDIAL_GREETING(() -> System.out.println("hi wow so nice to see you"))

在枚举中。

注释中的三元运算符当然与 if/else 没有什么不同。

关于java - 没有 if 和 switch 的条件语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48582246/

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