Java 6 эквивалент Integer.compare

В Java 7 я могу использовать Integer.compare, но когда я пытаюсь использовать его в Java 6, он дает мне ошибку:

cannot find symbol
symbol  : method compare(int,int)
location: class java.lang.Integer

Как создать аналогичную функцию в Java 6?

Ответ 1

Это указано в doc:

Сравнивает два значения int численно. Возвращаемое значение идентично к тому, что будет возвращено:     Integer.valueOf(x).compareTo(Integer.valueOf(y))

Итак, вы можете использовать:

Integer.valueOf(x).compareTo(Integer.valueOf(y))

Как создать аналогичную функцию в Java 6?

Источник открыт, и вы можете найти реализацию здесь.

1020  public static int compare(int x, int y) {
1021      return (x < y) ? -1 : ((x == y) ? 0 : 1);
1022  }

Ответ 2

Вы можете использовать реализацию, присутствующую в реализации Java 7

public static int compare(int x, int y) {
    return (x < y) ? -1 : ((x == y) ? 0 : 1);
}

Для вашего проекта java 6 вы переносите это в класс утилиты и удаляете этот класс после перехода на Java7

Ответ 3

Попробуйте следующее:

Integer.valueOf(a).compareTo(Integer.valueOf(b))

Ответ 4

public static int compare(int x, int y){ return (x<y)?-1:((x==y)?0:1); }

  • использовать "статический" только в том случае, если он является частью класса утилиты, из которого вы не собираетесь создавать экземпляр
  • Обратите внимание, что скобки важны для четкого указания действий.
  • Значения, возвращаемые функцией: -1 возвращается, если xy
  • Java 7 и далее вам не нужно реализовывать это в классе утилиты, вместо этого вы можете использовать Integer.compare(x, y)