Самое простое решение - создать функцию 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);
});
Чтобы иметь возможность использовать однопараметрическую версию Collection.sort()
на ArrayList
в A
, A
должен реализовать интерфейс Comparable
:
public class A implements Comparable<A> {
...
@Override
int compareTo(A rhs) {
...
}
}
Вот подпись 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)