#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:
Операторы < > можно использовать только с примитивами, такими как целые числа.