Java 是一种强静态转换,所以这是否意味着“===”没有用
我查看了大量文档,但没有看到相同的比较运算符。
===
在弱类型语言(如 Javascript)中很有用,因为它验证被比较的对象是否属于同一类型并避免隐式转换。
===
在 Java 这样的强类型语言中绝对没有用,因为如果不编写特定的方法,就无法比较不同类型的变量。
例如,如果您想比较 anint
和 a String
in Java
,您将不得不编写一些特殊的方法,例如:
boolean compareIntString(int i, String s) {
return (i == parseInt(s));
}
但这几乎是矫枉过正。(你会注意到,正如所写,这个方法只接受 anint
和 a String
。它不只接受任何两个变量。在调用它之前你知道数据类型是不同的。)
要点是,虽然你可以做i == s
in Javascript
,但你不能做i == s
in Java
,所以你不需要===
。
我想,简短的回答是Java
's==
是Javascript
's ===
。如果要模拟Javascript
并==
比较两个项目,忽略数据类型,则必须编写一个自定义方法,该方法接受通用数据类型作为参数...并至少找出所有可能的比较逻辑的原始数据类型的组合Java
...
没有java没有===
运算符。nhgrif很好地解释了原因。以下是 java 中的运算符列表及其优先级:
来源:http ://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html