Если ваша цель состоит в том, чтобы изменить «равное» поведение, вам следует просто переопределить equals
(и hashCode
).
Вы можете определить operator_equals
, только если вы хотите, чтобы оно имело другоеповедение, чем equals
.Но вы, как правило, этого не хотите.
Если вы перегрузите оператор ==
, оригинальный метод equals
все еще существует, и некоторый код может использовать этот оператор, тогда как другой код будет использовать equals
(дляпример библиотеки Java).Это звучит как хороший способ что-то сломать.
Имеет смысл для Xtend предоставить возможность перегружать все операторы для некоторых нечетных случаев использования или даже просто для согласованности, но, на мой взгляд, переопределение существующего поведения оператора плохопрактиковать и его следует избегать.Гораздо безопаснее перегружать только операторы, которые еще не определены для типа.