java приведение к другим классам

Подскажите, пожалуйста, на сколько плохая операция приведения к другому классу. Например, я переопределяю метод equals и хочу обратиться к полям класса, чтобы сравнить из, что лучшее сделать: методы get или привести к классу? На сколько операция приведения дорогая. Заранее спасибо!

public boolean equals(Object expression) {
        if (this == expression) return true;
        if (!(expression instanceof GeneralInterface)) return false;
        if (getClass() != expression.getClass()) return false;
        AbstractBinaryOperations binary = (AbstractBinaryOperations) expression;
        return arg1.equals(binary.arg1) && arg2.equals(binary.arg2);
    }

Ответы (1 шт):

Автор решения: Ilya Lisov

Используйте наследование, чтобы иметь иерархию объектов, тогда вы сможете вызывать геттеры, не задумываясь о приведении типов.

public boolean equals(Object expression) {
    if (this == expression) return true;
    if (!(expression instanceof GeneralInterface)) return false;
    GeneralInterface binary = (GeneralInterface) expression;
    return arg1.equals(binary.getArg1()) && arg2.equals(binary.getArg2());
}

Унаследуйте AbstractBinaryOperations от GeneralInterface (ну или имплементируйте общие методы - тогда Вы сможете обратиться к геттерам и не тратить ресурсы на кастинг.

→ Ссылка