Сортировка списка объектов на основе сравнения поля со списком строк

Я думаю, что самый простой способ проверить, является ли эта функция классом ES6, - проверить результат метода .toString() . Согласно es2015 spec :

Строковое представление должно иметь синтаксис FunctionDeclaration FunctionExpression, GeneratorDeclaration, GeneratorExpression, ClassDeclaration, ClassExpression, ArrowFunction, MethodDefinition или GeneratorMethod в зависимости от по фактическим характеристикам объекта

blockquote>

Таким образом, функция проверки выглядит довольно просто:

function isClass(func) {
  return typeof func === 'function' 
    && /^class\s/.test(Function.prototype.toString.call(func));
}

2
задан Bentaye 28 March 2019 в 09:49
поделиться

1 ответ

Вы можете создать свой собственный компаратор.

Comparator<Student> comparator = new Comparator<Student>()
{
    @Override
    public int compare(Student o1, Student o2)
    {
        int index1 = list1.indexOf(o1.getName());
        int index2 = list1.indexOf(o2.getName());

        return Integer.compare(index1 , index2 );
    }
};

и чем сортировать:)

java.util.Collections.sort(yourList, comparator);
0
ответ дан Adir 28 March 2019 в 09:49
поделиться
Другие вопросы по тегам:

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