Ответ 1
Вы можете посмотреть, как он реализован для java.lang.Boolean
, так как этот класс, естественно, также использует примитивное логическое значение:
public int compareTo(Boolean b) {
return (b.value == value ? 0 : (value ? 1 : -1));
}
Мне нужны некоторые классы implements Comparator
, и для одного я хочу сравнить примитивные значения boolean
(not boolean
).
ЕСЛИ это было * B * oolean, я бы просто return boolA.compareTo(boolB);
, который вернул бы 0, -1 или 1. Но как я могу сделать это с помощью примитивов?
Вы можете посмотреть, как он реализован для java.lang.Boolean
, так как этот класс, естественно, также использует примитивное логическое значение:
public int compareTo(Boolean b) {
return (b.value == value ? 0 : (value ? 1 : -1));
}
Так как Java 7, логика, которую Марко Тополник показал в своем ответе, перешла в другой метод, чтобы показать способ сравнения примитивного boolean
.
Javadoc для Boolean.compare(boolean x, boolean y)
:
public static int compare(boolean x, boolean y)
Compares two boolean values. The value returned is identical to
what would be returned by:
Boolean.valueOf(x).compareTo(Boolean.valueOf(y))
Вы можете использовать функцию автообновления java для облегчения этой проблемы. Здесь вы можете прочитать об автобоксинге: Автосообщение Java
Вы можете сравнить два примитивных логических значения b1 и b2 следующим образом.
(Boolean.valueOf(b1).equals(Boolean.valueOf(b2))