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

c3c*_*ris 11 java

Java是强静态强制转换,所以这意味着"==="没有用

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

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 == sJavascript,你不能这样做i == sJava,所以你不需要===.


我想,简单的答案是Java==Javascript===.如果你想模仿Javascript==和比较两个项目,忽略数据类型,你必须写一个接受的通用数据类型作为参数的自定义方法......并找出逻辑上比较,至少,所有可能的Java原始数据类型的组合......


Jun*_*san 5

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

在此处输入图片说明

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

  • 不过,我倾向于同意@PM77-1...这个问题确实表明他已查看文档但找不到答案。这个答案确实提供了提问者应该查看的文档。 (2认同)