Сравнение классов в Java

94
29 марта 2021, 15:30

Имеется код:

this.setOnMouseDragReleased(event -> {
    if(event.getGestureSource().getClass() == Pane.class) {
        something();
    }
}

Если наш GestureSource является непосредственно Pane, то данное условие срабатывает, но в случае если GestureSource наследуемый класс от Pane, то ничего не происходит. Подскажите, какое решение использовать в данном случае, чтобы наше условие срабатывало не только от Pane, но и от всех наследуемых от него классов?

Answer 1

Чтобы узнать, является ли выбранный класс наследником какого-либо класса, либо им самим, используйте оператор instanceof.

В вашем случае

this.setOnMouseDragReleased(event -> {
    if (event.getGestureSource().getClass() instanceof Pane) {
        something();
    }
}

Предупреждение: не стоит злоупотреблять вызовами instanceof, т.к. это очень затратная по времени операция.

READ ALSO
Отправка tcp пакета на сервер

Отправка tcp пакета на сервер

Есть код который отправляет tcp пакет на сервер, но он отправляет только один раз, а после просто молчитНужно чтобы клиент мог отправлять tcp пакеты...

104
Как установить роль пользователю в Java EE?

Как установить роль пользователю в Java EE?

При логине пользователя я хочу установить ему роль на время сессииКак это можно сделать?

101
Java, перевод exception на русский язык

Java, перевод exception на русский язык

Есть ли какая-то возможность перевести стандартные exception на русский язык? Те

135
Spring Security подменяет сессию

Spring Security подменяет сессию

Я пытаюсь настроить Spring Security, и у меня есть одна проблема

104