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