Предупреждение появляется, когда вы используете неуниверсальный тип в контексте, где ожидается универсальный тип.Компиляция говорит, что вы можете быть правы, но я не могу проверить тип для вас.
Вы также не можете;
- Сделайте тип правильным универсальным.
- Отключите предупреждение с помощью @ SuppressWarnings
- Игнорируйте предупреждение.
РЕДАКТИРОВАТЬ: В этом примере вы должны выбрать суперкласс / интерфейс элементов в списке.
// I'd like to be able to add both ints and strings to list
List<Object> list = new ArrayList<Object>();
list.add(1);
list.add("b");
Вместо объекта вы можете выбрать Seralizable
или Comparable
, однако любой из них, вероятно, будет полезен.Действительно, List<Object>
редко полезен, за исключением упражнений.
Правильный способ реализации Comparator
- использовать сравнение.Использование -
допустимо только в том случае, если вы знаете, что это невозможно.например, 2000000000 - -2000000000 <0, тогда как вы можете ожидать 2000000000 - -2000000000> 0
class CompareGerbils implements Comparator<Gerbil> {
public int compare(Gerbil a, Gerbil b) {
return a.number() > b.number() ? +1
: a.number() < b.number() ? -1 : 0;
}
}
В целях тестирования я предлагаю попробовать отсортировать список, который еще не отсортирован.Простой способ сделать это - использовать метод shuffle ().Это все еще можно отсортировать, но чем больше список, тем менее вероятно, что это так.
Collections.shuffle(gerbillis);