Java: сравнивать объекты, используя >, < и ==

#java #generics

#java #объект #сопоставимые

Вопрос:

Можно ли правильно сравнивать объекты с использованием операторов > < и == в Java? Я реализовал Comparable интерфейс в одном из своих объектов.

Это сэкономило бы некоторое время и было бы приятно писать

 if (obj1 < obj2) do sth
 

вместо

 if (obj1.compareTo(obj2) < 0) do sth
 

Возможно ли это, если я реализую что-то еще, или это обычно работает не так?

Комментарии:

1. Нет, Java не поддерживает перегрузку операторов (за исключением строк, которые вы можете объединить с ).

Ответ №1:

Нет, это невозможно. Java не поддерживает перегрузку операторов.

Возможно, вы захотите проверить Groovy, который является Java-подобным языком, который работает на JVM и поддерживает перегрузку операторов.

Комментарии:

1. @CGFoX Вы также можете проверить Scala, который работает на JVM и поддерживает перегрузку операторов (вы даже можете смешивать код Scala и Java).

Ответ №2:

Одним словом — нет, это невозможно. Java не поддерживает перегрузку операторов, а операторы сравнения ( < , <= , > и <= ) зарезервированы только для примитивных типов.

Ответ №3:

Нет, это невозможно. Эти операторы работают только с примитивными типами.

Ответ №4:

Операторы < > можно использовать только с примитивами, такими как целые числа.