如何避免使用?(三元运算符)在一行中的其他条件

Roc*_*Dev 0 java

假设我给出了以下语法:

Boolean isCapital = city.isCapital();
    String isCapitalName;
    if(isCapital == null) {
      isCapitalName = "";
    }
Run Code Online (Sandbox Code Playgroud)

意味着我不希望其他条件在我的简称(本博客的标题)然后应该是什么语法.

我想尽量减少在我的项目中使用if else条件,以便我想在衬垫上使用if else.

请指导.

Jon*_*Lam 6

你可以isCapitalName像这样设置:

String isCapitalName = isCapital == null ? "" : null;
Run Code Online (Sandbox Code Playgroud)

这与您当前的代码具有相同的行为.它将其设置为:

  • 一个空字符串""ifisCapital == null
  • null 默认情况下

编辑考虑到@ khelwood的评论:

未初始化的局部变量的默认值实际上不是null,但如果在代码中使用它,则会导致错误.我不确定为什么你会将它保留为未初始化,但是 - 你可能想要选择一个默认值来放入三元的第二个子句中.

  • @JonathanLam [JLS,§16](https://docs.oracle.com/javase/specs/jls/se9/html/jls-16.html):"*[...]对于局部变量的每次访问或空白的最终字段x,x必须在访问之前明确分配,否则会发生编译时错误.[...]*" (2认同)