Ниже мой код
class NumberComparator<Number> implements Comparator<Number> {
    public int compare(Number o1, Number o2) {
        return 1;
    }
}
public class Ex28 {
    public static void main(String[] args) {
        TreeSet set = new TreeSet(new NumberComparator<Number>());
        set.add(1);
        set.add(1.4f);
        set.add(1L);
        set.add("1a");
        System.out.println(set);
    }
}
Как я определил свой собственный компаратор типа Number, но все же, когда я добавляю что-то еще, что является строкой для него, это не дает мне никаких исключений. Это просто отлично работает. Я получаю вывод как
[1, 1.4, 1, 1a]
Может кто-нибудь объяснить, почему это происходит.