У меня есть обобщенный класс c для представления интервала в строке значений.
public class Interval<T extends Comparable<T>> {
private boolean isStartInclusive;
private T start;
private T end;
private boolean isEndInclusive;
//constructors and getters and setters
}
У меня есть список этого интервала того же типа. И я пытаюсь отсортировать их, исходя из их начального значения.
Так что, если список был
{[1,2], [0,3], [-10,4]}
, я пытаюсь получить
{[-10,4], [0,3], [1,2]}
или
Если список был
{['e','v'], ['a','d'], ['c','f']}
Я пытаюсь получить
{['a','d'], ['c','f'], ['e','v']}
Код для сортировки приведен ниже.
public static <T extends Comparable<T>> List<Interval<T>> sortIntervals(List<Interval<T>> intervals) {
Interval[] intervalsArray = intervals.toArray(new Interval[0]);
Arrays.sort(intervalsArray, (o1, o2) -> o1.getStart().compareTo(o2.getStart()));
return Arrays.asList(intervalsArray);
}
Но В строке, где вызывается Arrays.sort
, появляется предупреждение компилятора: Unchecked call to 'compareTo(T)' as a member of raw type 'java.lang.Comparable'