[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-java-core-v-equals-trebuetsya-proveryat-chto-argument-equals-object-that-takogo-zhe-tipa-chto-i-sam-obekt-v-chem-raznitsa-mezhdu-this-getclass-that-getclass-i-that-instanceof-myclass":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":20,"progress":21,"seo":22},97,"v-equals-trebuetsya-proveryat-chto-argument-equals-object-that-takogo-zhe-tipa-chto-i-sam-obekt-v-chem-raznitsa-mezhdu-this-getclass-that-getclass-i-that-instanceof-myclass",2,"java-core","Java Core","☕","В `equals()` требуется проверять, что аргумент `equals(Object that)` такого же типа что и сам объект. В чем разница между `this.getClass() == that.getClass()` и `that instanceof MyClass`?","Оператор `instanceof` сравнивает объект и указанный тип. Его можно использовать для проверки является ли данный объект экземпляром некоторого класса, либо экземпляром его дочернего класса, либо экземпляром класса, который реализует указанный интерфейс.\n\n`this.getClass() == that.getClass()` проверяет два класса на идентичность, поэтому для корректной реализации контракта метода `equals()` необходимо использовать точное сравнение с помощью метода `getClass()`.","","middle",[15,16,17,18,19],"core","getClass","equals","Object","instanceof",[],null,{"title":23,"description":24,"ogTitle":25,"ogDescription":26,"keywords":27,"schemaAnswer":32,"featuredSnippetReady":33},"Разница между getClass() и instanceof в equals() — Gymterview","instanceof проверяет принадлежность к классу или его наследнику, а getClass() проверяет точное совпадение класса. Для корректного equals() используйте getClass().","getClass() vs instanceof в equals() — Gymterview","instanceof проверяет принадлежность к классу или наследнику, getClass() — точное совпадение. Для equals() предпочтительнее getClass().",[17,16,19,28,29,30,31],"Java","проверка типа","контракт equals","собеседование","Оператор instanceof сравнивает объект и указанный тип. Его можно использовать для проверки, является ли данный объект экземпляром некоторого класса, либо экземпляром его дочернего класса, либо экземпляром класса, который реализует указанный интерфейс. this.getClass() == that.getClass() проверяет два класса на идентичность, поэтому для корректной реализации контракта метода equals() необходимо использовать точное сравнение с помощью метода getClass().",true]