java - “===” 等效于 Java

标签 java operators

在 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 代码示例中,如果要在 xy 之间进行比较,可以使用 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/

相关文章:

c# - 如何为 .net 中的类型获取已定义的运算符

javascript - | 是什么意思?在 JavaScript 中

java ->> 在 Java 中做什么?

java - 文本 : Add New line when element is added to new Page

java - SecureRandom 实例创建需要很长时间才能完成

c++ - "No match for ' operator= ' in", 结构错误 C++

c# - 静态隐式运算符

java - 我应该如何让我的玩家矩形跳跃?

java - 如何从一组对象生成组合?

java - 为什么我的 switch 语句会出现这种奇怪的行为?