[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-java-core-pravila-pereopredeleniya-metoda-object-equals":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":19,"progress":20,"seo":21},81,"pravila-pereopredeleniya-metoda-object-equals",2,"java-core","Java Core","☕","Правила переопределения метода `Object.equals()`.","1. Использование оператора `==` для проверки, является ли аргумент ссылкой на указанный объект. Если является, возвращается `true`. Если сравниваемый объект `== null`, должно вернуться `false`.\n2. Использование вызова метода `getClass()` для проверки, имеет ли аргумент правильный тип. Если не имеет, возвращается `false`.\n3. Приведение аргумента к правильному типу. Поскольку эта операция следует за проверкой `instanceof` она гарантированно будет выполнена.\n4. Обход всех значимых полей класса и проверка того, что значение поля в текущем объекте и значение того же поля в проверяемом на эквивалентность аргументе соответствуют друг другу. Если проверки для всех полей прошли успешно, возвращается результат `true`, в противном случае - `false`.\n\nПо окончанию переопределения метода `equals()` следует проверить: является ли порождаемое отношение эквивалентности рефлексивным, симметричным, транзитивным и непротиворечивым? Если ответ отрицательный, метод подлежит соответствующей правке.","","middle",[15,16,17,18],"core","equals","best-practices","override",[],null,{"title":22,"description":23,"ogTitle":24,"ogDescription":25,"keywords":26,"schemaAnswer":31,"featuredSnippetReady":32},"Правила переопределения Object.equals() в Java — Gymterview","Пошаговые правила переопределения метода Object.equals() в Java: проверка ссылки, проверка типа через getClass(), приведение типа, сравнение полей.","Правила переопределения Object.equals() — Gymterview","Пошаговые правила переопределения метода equals(): проверка ссылки, типа, приведение и сравнение полей.",[27,28,29,30],"правила equals Java","переопределение Object.equals","override equals пошагово","getClass equals","1. Использование оператора == для проверки, является ли аргумент ссылкой на указанный объект (если да — true, если null — false). 2. Использование getClass() для проверки правильного типа аргумента (если не совпадает — false). 3. Приведение аргумента к правильному типу. 4. Обход всех значимых полей класса и проверка соответствия значений полей текущего объекта и аргумента. По окончании следует проверить рефлексивность, симметричность, транзитивность и непротиворечивость.",true]