nhg*_*rif 32
=== 在弱类型语言中很有用,例如Javascript,因为它验证被比较的对象是相同的类型并避免隐式转换.
=== 在Java等强类型语言中绝对没有用,因为如果不编写特定的方法,就无法比较不同类型的变量.
例如,如果要将inta与Stringin 进行比较Java,则必须编写一些特殊方法:
boolean compareIntString(int i, String s) {
return (i == parseInt(s));
}
Run Code Online (Sandbox Code Playgroud)
但这实在是太过分了.(正如你所注意到的那样,这个方法只接受a int和a String.它不接受任何两个变量.在你调用之前你知道数据类型是不同的.)
主要的一点是,虽然你可以做i == s的Javascript,你不能这样做i == s的Java,所以你不需要===.
我想,简单的答案是Java的==是Javascript的===.如果你想模仿Javascript的==和比较两个项目,忽略数据类型,你必须写一个接受的通用数据类型作为参数的自定义方法......并找出逻辑上比较,至少,所有可能的Java原始数据类型的组合......
没有java没有===运算符。nhgrif很好地解释了原因。这是java中的运算符列表及其优先级:

来源:http : //docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html
| 归档时间: |
|
| 查看次数: |
24823 次 |
| 最近记录: |