Сравнение двух целых чисел с моим компаратором

Я изучаю, как использовать интерфейс Comparator в java, и я пытаюсь написать свой собственный Comparator, который будет сравнивать целые числа по-разному (например, 3>5). У меня проблема с этим, может кто-нибудь сказать, что не так с моим кодом?

import java.util.*;
import java.lang.*;
class MyComparator<Integer> implements Comparator<Integer>
{
    public int compare(Integer a, Integer b)
    {
        if(a.compareTo(b)>0)
        return -1;
        else if(a.compareTo(b)<0)
            return 1; 
        else 
            return 0;
    }
}

Компилятор не может найти compareTo(Integer).


person Bouncer00    schedule 01.09.2014    source источник
comment
Я также хотел бы отметить, что вы можете просто написать return b.compareTo(a);   -  person Jan Van den bosch    schedule 01.09.2014
comment
Посмотрите на Integer.compare(int, int)   -  person Peter Lawrey    schedule 01.09.2014
comment
так что это то же самое, что и return -a.compareTo(b); или return b.compareTo(a);   -  person Peter Lawrey    schedule 01.09.2014


Ответы (1)


Изменять

class MyComparator<Integer> implements Comparator<Integer>

to

class MyComparator implements Comparator<Integer>

В первом случае вы объявляете параметр типа, который слежка java.lang.Integer.

person Mark Peters    schedule 01.09.2014