java - Java使用内部类的方法引用

标签 java methods reference inner-classes anonymous-inner-class

public static class CompareClass {

    public static int  CompareBetweenStudents(Student student, Student othStudent) {
        return student.getNume().compareTo(othStudent.getNume());

    }

}

public List<Student> filterStudentsByLetter(String letter){

    Predicate<Student> predicate = x->x.getNume().indexOf(letter) == 0;
    Iterable<Student> list = getAllStudenti();
    Object[] objects = genericFilter(list, predicate, CompareClass::CompareBetweenStudents).toArray();
    return null;
}


public  <E> List<E> genericFilter(List<E> list, Predicate<E> predicate, Comparator<E> comp){
    return list.stream().filter(predicate).sorted(comp).collect(Collectors.toList());
}

我正在尝试创建一个可比较的类以在过滤器中使用,但我不断将 CompareClass::CompareBetweenStudents 视为“无法解析 methodCompareBetweenStudents”。怎么解决呢?

最佳答案

您不需要为此实现一个类(比较),您可以简单地执行以下操作:

genericFilter(list, predicate, Comparator.comparing(x -> x.getName()))

还有另一个问题:您将列表声明为 Iterable<Student> list但将其作为 List<E> list 传递。这不起作用,请修复 getAllStudenti()返回List<Student>

关于java - Java使用内部类的方法引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47242667/

相关文章:

java - 通过 eclipse 创建的 BIRT 报告在执行时抛出错误

java - 如何更改一堆 java 可序列化类的包

java - 操作方法时出现问题 - Java

gradle - 在application.yml中引用gradle属性

java - 这种多部分形式有什么问题? Android-Java

java - 运行 gradle build 时为 "Cannot invoke method repositories() on null object"

c# - 打开不同的方法但使用相同的名称 - C#

java - 访问类方法而不用类作为前缀

c++ - 将 C++ 引用从 unsigned char 转换为 double& 安全吗?

c# - 检查.NET 3.5中对给定实例保留了多少引用