Java 条件变量?

Java 条件变量?,java,Java,我真的不知道这叫什么,所以很难找到它,最好是我告诉你我在努力做什么 我想创建一个条件变量 String fileName = (if (this.filename != null) { return this.filename; } else { return "default value"; }); 这应该很清楚我想做什么。我想使用某种条件根据另一个变量输入设置此变量,在这种情况下,无论它是否等于null。使用三元运算符。在我看来,这是中国的战略之一

我真的不知道这叫什么,所以很难找到它,最好是我告诉你我在努力做什么

我想创建一个条件变量

String fileName = (if (this.filename != null) { return this.filename; } 
                   else { return "default value"; }); 

这应该很清楚我想做什么。我想使用某种条件根据另一个变量输入设置此变量,在这种情况下,无论它是否等于null。

使用三元运算符。在我看来,这是中国的战略之一

String fileName = this.filename != null ? this.filename : "default value";
您可以使用:
布尔表达式?值1:值2

String fileName = fileName == null ? "Default value" : this.filename;
或者,更详细,但(也许)更容易理解

String aFilename;
if (this.filename != null)
  aFilename = this.filename;
else
  aFilename = "Default Value";
return aFilename;
我更喜欢Careal的代码,但不喜欢YMMV。有些人找到了答案?操作员复杂(尤其是在混乱的情况下)


另外,使用调试器单步执行时,这段代码将更容易看到发生了什么。

查找三元运算符。是的,这就是我要查找的。谢谢找到术语后,您要查找的内容可能重复?默认值可能是我使用的术语。三元运算符是我想要的,我不知道它叫什么。现在我有一些东西要查,因为这似乎正是我需要的。我的互联网速度很慢。道歉:PBTW,我看到你先发帖了我讨厌我在写答案的时候有人在我面前贴了出来,反之亦然(所以应该有一个机制来防止这种情况。@CarealManic:这个答案比你的好,因为它实际上提到了“三元运算符”。OP想知道应该使用什么搜索术语。校外没有人使用“三元运算符”。真正的程序员称之为“那个问号东西”。-)我想保存行,三元运算符正是我想要的,不过谢谢你的回答:D@DerekE:您使用的每一条线路需要支付多少费用?当您保存行时,您真正节省了多少?如果您牺牲了可读性并在以后进行了困难的调试,那么您实际上并没有保存任何东西。谢谢你的投票。这种技术的一个小优点是,当您逐步使用调试器时,通常更容易看到正在发生的事情。在复杂的情况下非常有用。嗯,它不需要任何费用,但如果我能在一条线上完成,也许两对六,我会尝试这条路线。加上三元运算符看起来非常直观。@user949300,当我需要更复杂的内容时,我使用这个时间方法,但是对于这个实例的文件名的简单默认值,三元运算符似乎就足够了。
String aFilename;
if (this.filename != null)
  aFilename = this.filename;
else
  aFilename = "Default Value";
return aFilename;