「===」は、Javaでの同等

JavaCakes:

Javaで2つの値を比較しながら、型と値、等価である両方の場合、どのようにテストするのですか?

私はJavaScriptで知っている===私はJavaでそれを試してみましたので、これを実現するために使用することができますが、それは動作しませんでした。

私は、これは簡単な質問ですけど、私はそれを見てみました、私はそれが何だったかを知ることができませんでした。

lealceldeiro:

TL; DR

Javaでは、このようなAの比較演算子がありません。===しかし、==または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で、使用して厳密をチェックする必要はありません===構文エラーが報告されているが)。

あなたが使用して、異なる型の値を比較するとき、最初の場所では、コンパイラが文句を言うだろう==、オペレータとの変換を行うことはできませんが。

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方法はプリミティブ型で呼び出すことはできません。

いくつかの有用な測定値は以下のとおりです。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=225971&siteId=1