Для чего сравнивать this и любой Object o?

121
25 декабря 2019, 15:00

Для чего сравнивать this, и любой Object o? В каких случая они могут оказаться равными?

Answer 1

Было бы очень хорошо, если бы вы конкретизировали вопрос, а то остаётся только гадать о контексте. Подозреваю, что вас интересует один из этапов работы типовой реализации метода equals. Если так, то сравнивать this с аргументом стоит для случаев, когда вызывающий код сравнивает объект с сами собой.

public class Demo {
    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        ...
    }
    public static void main(String[] args) {
        Demo one = new Demo();
        Demo two = one;
        if (one.equals(two)) {
            ...
        }
    }
}
Answer 2

В каких случая они могут оказаться равными?

Когда это сравнение находится внутри метода объекта o.

READ ALSO
Как скрыть метод класса Java?

Как скрыть метод класса Java?

Собственно, как скрыть/сделать не доступными некоторые методы класса? Например, перезаписанные public методы класса-родителя:

136
Как работать со слушателями событий в Canvas?

Как работать со слушателями событий в Canvas?

Можно ли в Android Canvas вешать слушателей на изображения(BitMap) ?

118
Не возвращается значение из потока

Не возвращается значение из потока

Есть поток которое получает с сайта имя пользователя:

157
Изменить стили css стороннего виджета iframe

Изменить стили css стороннего виджета iframe

Есть сторонний виджет, который представляет собой просто форму обратной связи iframe, вопрос: возможно ли изменить в нем какие-то стили на моем...

162