Может кто-нибудь, пожалуйста, объясните мне, почему ниже код не работает:Сопоставимые интерфейс с помощью сравнения метод
public static void main(String[] args) throws IOException
{
Comparable<Integer> q = new Integer(4);
Comparable<Integer> o = new Integer(4);
// Problematic line
int j = o.compareTo(q);
if (j == -1)
System.out.println("yes");
else
System.out.println("no");
}
, но это работает:
public static void main(String[] args) throws IOException
{
Integer q = new Integer(4);
Integer o = new Integer(4);
// Problematic line
int j = o.compareTo(q);
if (j == -1)
System.out.println("yes");
else
System.out.println("no");
}
}
Другими словами, когда это интерфейс реализация взаимозаменяема, в отличие от создания экземпляра нормального класса? Ошибка возникает, когда я использую метод compareTo(), который является частью интерфейса Comparable и реализуется всеми классами Wrapper, такими как целые.
Поэтому, я думаю, Comparable<Integer> q = new Integer(4);
и Integer q = new Integer(4);
не должны иметь значения. Может ли кто-нибудь объяснить это?
спасибо.
Что вы хотите сказать? –
и ваш выход? – nachokk
Да. «Сравнимый» - это то, что вы можете сравнить с «Целом» - не то, что вы можете сравнить с другим «Comparable ». –