在 Java 中比较两个值时,如何测试类型和值是否相等?
我知道在 JavaScript 中 ===
可以用来完成这个,所以我在 Java 中尝试过,但是没有用。
我知道这是一个简单的问题,但我尝试查找它却找不到它。
最佳答案
TL;DR
在Java中没有这样的比较运算符:===
,而是==
或equals
更长的解释
在 JavaScript 等 弱类型 语言中,您可以使用严格比较运算符 (===
),因为该语言允许在具有不同 类型的变量之间进行比较.
例如,在 JavaScript 中,如果您这样做,您将不会收到 编译错误:
var x = 10;
var y = 'foo';
console.log(x == y); // false
当您想要比较可能包含“相等”但可能属于不同类型的值的变量时,它很有用。
例如
var x = 10;
var y = '10';
console.log(x == y) // true
console.log(x === y) // false
在Java等强类型语言中,您不需要使用严格的比较运算符,因为该语言已经“处理”了类型比较。
例如:
int x = 10;
String y = "10";
System.out.println("10" == y); // true
System.out.println(x == y); // compile error : Incompatible operand types int and String
因此,基本上,在 Java 中,不需要使用 ===
来检查严格性(报告了语法错误)。
首先,当您使用 ==
运算符和 conversion 比较不同类型的值时,编译器会报错。无法执行。
在前面的 Java 代码示例中,如果要在 x
和 y
之间进行比较,可以使用 equals
:
int x = 10;
String y = "10";
System.out.println(y.equals(x)); // compile warning: Unlikely argument type for equals(): int seems to be unrelated to String
作为旁注,请注意 equals
不能对原始类型调用方法。
一些有用的读物是:
关于java - “===” 等效于 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56685199/