三元运算符 - JAVA
2022-09-01 08:18:32
是否可以更改以下内容:
if(String!= null) {
callFunction(parameters);
} else {
// Intentionally left blank
}
...到三元运算符?
是否可以更改以下内容:
if(String!= null) {
callFunction(parameters);
} else {
// Intentionally left blank
}
...到三元运算符?
好吧,在Java中的行为是这样的...ternary operator
return_value = (true-false condition) ? (if true expression) : (if false expression);
...另一种看待它的方式...
return_value = (true-false condition)
? (if true expression)
: (if false expression);
你的问题有点模糊,我们必须在这里假设。
当(且仅当)声明返回值(、 、 、 等)- 它似乎不会通过你的代码做到这一点 - 然后你可以这样做...callFunction(...)
non-void
Object
String
int
double
return_value = (string != null)
? (callFunction(...))
: (null);
如果不返回值,则不能使用三元运算符!就是这么简单。您将使用不需要的东西。callFunction(...)
尽管如此,三元运算符应该只表示替代赋值!!你的代码似乎没有这样做,所以你不应该这样做。
这就是他们应该如何工作...
if (obj != null) { // If-else statement
retVal = obj.getValue(); // One alternative assignment for retVal
} else {
retVal = ""; // Second alternative assignment for retVale
}
这可以转换为...
retVal = (obj != null)
? (obj.getValue())
: ("");
由于看起来您可能只是尝试将此代码重构为单行代码,因此我添加了以下内容
另外,如果你的假子句真的是空的,那么你可以这样做......
if (string != null) {
callFunction(...);
} // Take note that there is not false clause because it isn't needed
或
if (string != null) callFunction(...); // One-liner
是的。你可以保持相同的块。null
else
String result = str !=null ? callFunction(parameters) : null;
确保返回 .callFunction(parameters)
String