Что не так с этим Collections.sort (List & lt; T & gt; lst) [duplicate]

Самое простое решение - создать функцию JavaScript и вызвать его для обратного вызова Ajax success.

function callServerAsync(){
    $.ajax({
        url: '...',
        success: function(response) {

            successCallback(response);
        }
    });
}

function successCallback(responseObj){
    // Do something like read the response and show data
    alert(JSON.stringify(responseObj)); // Only applicable to JSON response
}

function foo(callback) {

    $.ajax({
        url: '...',
        success: function(response) {
           return callback(null, response);
        }
    });
}

var result = foo(function(err, result){
          if (!err)
           console.log(result);    
}); 
1
задан user2369869 14 December 2014 в 20:20
поделиться

2 ответа

Чтобы иметь возможность использовать однопараметрическую версию Collection.sort() на ArrayList в A, A должен реализовать интерфейс Comparable:

public class A implements Comparable<A> {
  ...
  @Override
  int compareTo(A rhs) {
    ...
  }
}
8
ответ дан NPE 24 August 2018 в 22:15
поделиться

Вот подпись Collections.sort:

public static <T extends Comparable<? super T>> void sort(List<T> list)

A должна реализовать Comparable для этого метода.

Вы пытаетесь передать BinOrder этому методу, когда BinOrder имеет тип ArrayList<A>, но поскольку A не реализует Comparable<A>, он не соответствует сигнатуре метода.

Либо изменение A для реализации Comparable, либо используйте метод sort, который принимает компаратор:

public static <T> void sort(List<T> list, Comparator<? super T> c)
0
ответ дан Eran 24 August 2018 в 22:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: