13

Java 是一种强静态转换,所以这是否意味着“===”没有用

我查看了大量文档,但没有看到相同的比较运算符。

4

2 回答 2

36

===在弱类型语言(如 Javascript)中很有用,因为它验证被比较的对象是否属于同一类型并避免隐式转换。

===在 Java 这样的强类型语言中绝对没有用,因为如果不编写特定的方法,就无法比较不同类型的变量。


例如,如果您想比较 anint和 a Stringin Java,您将不得不编写一些特殊的方法,例如:

boolean compareIntString(int i, String s) {
    return (i == parseInt(s));
}

但这几乎是矫枉过正。(你会注意到,正如所写,这个方法只接受 anint和 a String。它不只接受任何两个变量。在调用它之前你知道数据类型是不同的。)

要点是,虽然你可以做i == sin Javascript,但你不能做i == sin Java,所以你不需要===


我想,简短的回答是Java's==Javascript's ===。如果要模拟Javascript==比较两个项目,忽略数据类型,则必须编写一个自定义方法,该方法接受通用数据类型作为参数...并至少找出所有可能的比较逻辑的原始数据类型的组合Java...

于 2013-11-07T03:51:08.993 回答
6

没有java没有===运算符。nhgrif很好地解释了原因。以下是 java 中的运算符列表及其优先级:

在此处输入图像描述

来源http ://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html

于 2013-11-07T03:50:35.240 回答