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 (ну или имплементируйте общие методы - тогда Вы сможете обратиться к геттерам и не тратить ресурсы на кастинг.