【发布时间】:2014-12-10 20:35:59
【问题描述】:
我想知道 java 是否具有“默认值分配”(我真的不知道如何调用它),就像您可以在 javascript 或 python 中执行的操作一样。
例如在js中你可以这样做:
var myVar = variable || "default value";
如果 variable 包含一个值,myVar 将具有 variable 的值,否则 myVar 将是字符串“默认值”。
在python中你也可以这样做:
a = "hello"
b = a or "good bye"
print b #this will print "hello"
a = None
b = a or "good bye"
print b #this will print "good bye"
你能在java中做类似的事情吗?通常当我必须在 Java 中执行此操作时,我会执行以下操作:
String a = b != null ? b : "default value";
但我认为您可以在 js 或 python 中执行的操作更具可读性。你能告诉我这个“名字”是什么吗?我知道 || 符号它是一个 or 运算符,但是当你做这个“默认值”的事情时它是如何被调用的。 谢谢
【问题讨论】:
-
您在问题中发布的示例代码是在 Java 中执行此操作的方法。为清楚起见,我建议添加括号,使其显示为
String a = ((b != null) ? b : "default value") -
Java 不会检查像 Javascript 这样的变量的真实性。
-
相关:在 C# 中,您可以使用 null-coalescing operator
??执行此操作。见:Is there a java equivalent to null-coalescing operator in C#? -
@Tichodroma 试过什么?尝试使用其他所有具有默认值的编程语言的语法? “你试过了吗?”对于那些问“当我做 X 会发生什么?”的人来说,这是一个很好的回应,但对于“Java 是否有类似编程语言 Y 的特性 X 的特性”,它就不太适用了。跨度>
-
您的 python 示例实际上会导致异常,因为与 javascript 不同,引用不存在的
c变量不会导致null/None。
标签: java