Javaで2つの値を比較しながら、型と値、等価である両方の場合、どのようにテストするのですか?
私はJavaScriptで知っている===
私はJavaでそれを試してみましたので、これを実現するために使用することができますが、それは動作しませんでした。
私は、これは簡単な質問ですけど、私はそれを見てみました、私はそれが何だったかを知ることができませんでした。
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コードの前の例では、間の比較を行いたい場合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
方法はプリミティブ型で呼び出すことはできません。
いくつかの有用な測定値は以下のとおりです。