Вызов передаваемого метода в методе Java

260
17 июня 2017, 12:11

Нужно сделать сортитовку JSONObject. Подскажите пожалуйста.

Использую библиотеку JSONSimple. Хочу дописать свой метод sort. Но сделать это таки образом, что бы передавать туда нужный метод, который человек будет писать сам. Тоибшь, я написал конкретный метод сортировки. Я передаю его в метод sort моего объекта и мой метод вызывается в sort.

такое возможно?

Answer 1

Создаёте интерфейс компаратор:

public interface ICompare<T> {
    int compare(T obj1, T obj2);
}

Далее в своём методе сортировки его используете:

public void sort<T>(Collection<T> data, ICompare<T> compare) { ...

Аналогично решается лямбдами с 8 java.

Пример вызова:

sort(myCollection, new ICompare<MyClass>(){
    public int compare(MyClass obj1, MyClass obj2){
        return obj1.getName().compare(obj2.getName());
    }
});
READ ALSO
Сортировка JSONObject по ключу дате Java, алгоритм

Сортировка JSONObject по ключу дате Java, алгоритм

Использую JSONSimpleИмею такой Json:

380
Фактическая роль репозитория в Clean Architecture

Фактическая роль репозитория в Clean Architecture

Задался вопросом: а кем выступает репозиторий для Domain слояПравильно ли я понимаю, что репозиторий — просто мост, между логикой и системно-зависимой...

391
Именование методов доступа к данным в Clean Architecture

Именование методов доступа к данным в Clean Architecture

Можно ли мыслить в терминологии конкретного источника данных (например, базы данных) в Presentation (Presenter) и Domain (Interactor) слоях? Для примера: может...

355
Структура пакетов в Clean Architecture

Структура пакетов в Clean Architecture

Как правильно раскладывать пакеты в проекте, если используется "Чистая архитектура"? Есть ли какие-то нормальные проекты-примеры реализации...

357