Java是否具有相同的比较运算符示例===

时间:2013-11-07 03:48:18

标签: java

Java是强静态强制转换,因此这意味着“===”

没有用处

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

2 个答案:

答案 0 :(得分:30)

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

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


例如,如果您想将intString中的Java进行比较,则必须编写一些特殊方法:

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

但这太过分了。 (正如你所注意到的那样,这个方法只接受intString。它不接受任何两个变量。在你调用之前你知道数据类型是不同的。)

重点是,虽然您可以在i == sJavascript i == s,但Java无法===,所以您不需要Java 1}}。


我想,简短的回答是==的{​​{1}}是Javascript的{​​{1}}。如果你想模仿===的{​​{1}}并比较两个项目,忽略数据类型,你将不得不编写一个接受通用数据类型作为参数的自定义方法......并找出逻辑至少比较Javascript原始数据类型的所有可能组合......

答案 1 :(得分:4)

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

enter image description here

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