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

三元算子-Java[副本]

白才捷
2023-03-14

有没有可能改变这一点:

if(String!= null) {

    callFunction(parameters);

} else {

    // Intentionally left blank

}

…一个三元运算符?

共有2个答案

白才艺
2023-03-14

是的。您可以在else块中保持相同的null

String result = str !=null ?  callFunction(parameters) : null;

确保CallFunction(parameters)返回字符串

闻人锦
2023-03-14

好吧,Java中的三元运算符是这样的...

return_value = (true-false condition) ? (if true expression) : (if false expression);

...换个角度来看...

return_value = (true-false condition) 
             ? (if true expression) 
             : (if false expression);

你的问题有点模糊,我们必须在这里假设。

>

  • 如果(且仅当)CallFunction(...)声明了非void返回值(ObjectStringIntDouble等。)-它似乎不是通过你的代码来实现的-那么你可以这样做...

    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())
           : ("");
    

    由于看起来您可能只是试图将此代码重构为一个单行程序,因此我添加了以下内容

    另外,如果你的false-子句真的是空的,那么你可以这样做...

    if (string != null) {
    
        callFunction(...);
    
    } // Take note that there is not false clause because it isn't needed
    

    if (string != null) callFunction(...);  // One-liner
    

  •  类似资料:
    • 我能用java写 甚至我可以在方法参数中传递它。 我怎么把它转换成Kotlin?在Kotlin中写同样的东西时显示错误。

    • 我如何将下面的代码从Java转换成Kotlin?

    • 此表达式在Kotlin中的等价物是什么。 这是在给错误。

    • 有没有可能改变这一点: 到三元运算符?

    • 我们如何在Kotlin中使用三元运算符? 我尝试过使用三元运算符,其方式与java中使用的方式相同,但我在其中发现了一个lint错误:

    • 可能重复: Java条件运算符?:结果类型 通过Java三元运算符的自动装箱行为实现NullPointerException 说我有两个功能: 我这样称呼他们: 这会编译,但当我运行它时,我得到一个空指针异常(对不起,我不确定是在什么条件下)。我的一些问题是: 它为什么还要编译呢?? 它显然没有调用“正确的”函数,因为这不会导致NPE。那么它在调用哪个函数呢?它执行还是?