Как уже упоминалось axtavt , проблема в том, что у вас есть собственный класс Comparable. Более конкретно, это означает, что:
Integer.valueOf(1) instanceof java.util.Comparable == true
Integer.valueOf(1) instanceof Comparable == false
Это означает, что где-то в вашем коде у вас есть что-то вроде:
Object[] a = new Object[] {Integer.valueOf(1);};
Comparable x = (Comparable) a[0];
// or something equivalent, this is likely being passed through layers
// and not being done next to each other like this.
Вам нужно изменить это на:
Object[] a = new Object[] {Integer.valueOf(1);};
java.util.Comparable x = (java.util.Comparable) a[0];
Еще лучше, вы должны переименовать ваш класс Comparator во что-то, что не вступает в противоречие со стандартными классами в Java. В целом, даже несмотря на то, что в Java есть пространство имен, вам следует избегать того, чтобы у ваших классов было то же имя, что и у системных классов, чтобы избежать именно такой путаницы.