Java - это сильное статическое литье, поэтому это означает, что для "==="
Я просмотрел тонны документации и не видел Идентичного оператора сравнения.
Java - это сильное статическое литье, поэтому это означает, что для "==="
Я просмотрел тонны документации и не видел Идентичного оператора сравнения.
===
полезно в слабых типизированных языках, таких как Javascript, потому что он проверяет, что сравниваемые объекты одного типа и избегают неявных преобразований.
===
абсолютно не используется в строго типизированном языке, таком как Java, потому что вы не можете сравнивать переменные разных типов без написания конкретного метода для этого.
Например, если вы хотите сравнить int
с String
в Java
, вам нужно будет написать специальный метод как таковой:
boolean compareIntString(int i, String s) {
return (i == parseInt(s));
}
Но это в значительной степени перебор. (И как вы заметите, как написано, этот метод принимает только int
и String
. Он не принимает только любые две переменные. Вы знаете, прежде чем назвать это, что типы данных разные.)
Главное, что, хотя вы можете делать i == s
в Javascript
, вы не можете делать i == s
на Java
, поэтому вам не нужно ===
.
Я думаю, короткий ответ заключается в том, что Java
==
является Javascript
===
. Если вы хотите эмулировать Javascript
==
и сравнить два элемента, игнорируя тип данных, вам придется написать собственный метод, который принимает общие типы данных в качестве аргументов... и выяснить логику сравнения, как минимум, всех возможные комбинации примитивных типов данных Java
...
В java нет оператора ===
. Причина довольно хорошо объясняется nhgrif. Вот список операторов в java и их приоритет:
Источник: http://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html
Мы можем объяснить ==
и ===
с примером ниже:
int a = 1;
float b =1;
// (a == b) returns true
тем не мение
// (a === b) returns false
Все это потому, что ===
сравнивает и значение переменной, и тип, а ==
сравнивает только значение переменной.
Это.