gpt4 book ai didi

java - 在 Java 中将 if/else-if/else 转换为三元运算符

转载 作者:行者123 更新时间:2023-11-29 04:30:58 26 4
gpt4 key购买 nike

我正在尝试使用三元运算符 ?-:

if-else 语句转换为相等语句

我的目标是转换这段代码:

if (s instanceof Class1) {
do_something((Class1) s);
} else if (s instanceof Class2) {
do_something_else((Class2) s);
} else {
do_that((Class3) s);
}

我做了这样的事情:

(s instanceof Class1) ? do_something((Class1) s):
((s instanceof Class2) ? (do_something_else(Class2) s))) :
(do_that((Class3) s));

我调用的三个方法只返回 void。

我写的时候遇到一些语法错误。有人可以帮助或解释我错过了什么吗?提前致谢

最佳答案

您不能这样做的原因有两个:

  1. 您不能只使用任何独立的表达式作为语句。与某些语言(例如 JavaScript)不同,Java 没有“表达式语句”的一般概念,只有一些表达式也允许作为语句(如方法调用)。

  2. 条件运算符必须有结果,但如果您的方法是 void,则它们不会产生结果。

只保留if/else


旁注:一系列带有 instanceofif/else 往往暗示了一个设计问题,可以通过更清洁的方式。

关于java - 在 Java 中将 if/else-if/else 转换为三元运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43799217/

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