Почему в обобщённом методе не работает компаратор?

Само задание:

Определен enum CompareResult {LESS, EQUAL, GREATER};

Создайте статический метод с именем compare, который содержит 2 параметра обобщающего типа, и сравнивает их через метод compareTo(). Метод compare должен возвращать CompareResult, причем

CompareResult.LESS если первый параметр меньше второго
CompareResult.GREATER если первый параметр больше второго
CompareResult.EQUAL если первый параметр равен второму

Мой код:

public static <T> CompareResult compare(T one, T two) {
        int s = one.compareTo(two);//эта стока кода не работает
        if (s > 0) return CompareResult.GREATER;
        if (s < 0) return CompareResult.LESS;
        return CompareResult.EQUAL;
   }

Ответы (1 шт):

Автор решения: Roman C

Надо, чтобы объекты были Comparable, чтобы можно было вызывать метод compareTo().

public static <T extends Comparable<T>> CompareResult compare(T one, T two) {
        int s = one.compareTo(two);
        if (s > 0) return CompareResult.GREATER;
        if (s < 0) return CompareResult.LESS;
        return CompareResult.EQUAL;
    }
→ Ссылка