Luc*_*ese 28 java ternary-operator
有可能改变这个:
if(String!= null) {
callFunction(parameters);
} else {
// Intentionally left blank
}
Run Code Online (Sandbox Code Playgroud)
......给三元运营商?
Chr*_*ski 54
好吧,ternary operatorJava中的行为就像这样......
return_value = (true-false condition) ? (if true expression) : (if false expression);
Run Code Online (Sandbox Code Playgroud)
......另一种看待它的方式......
return_value = (true-false condition)
? (if true expression)
: (if false expression);
Run Code Online (Sandbox Code Playgroud)
你的问题有点模糊,我们必须在这里假设.
如果(且仅当) callFunction(...)声明了一个non-void返回值(Object,String,int,double,等.)-现在看来似乎没有做到这一点通过你的代码-那么你可以做到这一点...
return_value = (string != null)
? (callFunction(...))
: (null);
Run Code Online (Sandbox Code Playgroud)如果callFunction(...)没有返回值,则不能使用三元运算符!就那么简单.你将使用你不需要的东西.
尽管如此,三元运营商应该只代表替代任务!您的代码似乎没有这样做,所以您不应该这样做.
这是他们应该如何工作......
if (obj != null) { // If-else statement
retVal = obj.getValue(); // One alternative assignment for retVal
} else {
retVal = ""; // Second alternative assignment for retVale
}
Run Code Online (Sandbox Code Playgroud)
这可以转换为......
retVal = (obj != null)
? (obj.getValue())
: ("");
Run Code Online (Sandbox Code Playgroud)
由于您似乎可能只是想将此代码重构为单行代码,因此我添加了以下内容
此外,如果您的假条款真的是空的,那么您可以这样做......
if (string != null) {
callFunction(...);
} // Take note that there is not false clause because it isn't needed
Run Code Online (Sandbox Code Playgroud)
要么
if (string != null) callFunction(...); // One-liner
Run Code Online (Sandbox Code Playgroud)
是的。您可以将其保留null在else块中。
String result = str !=null ? callFunction(parameters) : null;
Run Code Online (Sandbox Code Playgroud)
确保callFunction(parameters) 返回一个String.
| 归档时间: |
|
| 查看次数: |
76212 次 |
| 最近记录: |