Например в Java хотелось бы определения сравнения одинаковых значений вот здесь
if (a.equals(a)) {
// do smth
}
Причём для == , если я не ошибаюсь это есть а для equals нет. Я понимаю, что это проблема Java, что там == не сравнивает значения переменных и нужен equals, но хотел узнать есть языки, где можно сделать скажем вот так.
@compile_time_assert(this != a)
boolean equals(Object a) {
}
Спасибо
Здравствуйте, Artifact, Вы писали:
A>A>@compile_time_assert(this != a)
A>boolean equals(Object a) {
A>}
A>
A>Спасибо
Это называется design by contract.
здесь
A>Например в Java хотелось бы определения сравнения одинаковых значений вот здесь
A>A>if (a.equals(a)) {
A> // do smth
A>}
A>
метод equals много где используется, например, в мэпах. И там сравнение с самим собой очень распространённая ситуация. Так что навешеивание аннотации на метод equals плохая идея, практически бесполезная.
Напиши правило для findbugs (ты же его используешь уже, раз такими вещами озаботился) — правило там будет на 30 строк включая отступы и скобки.