java - 如何在 Java 7 中对 .class 文件中的属性实现自定义排序

标签 java sorting

我需要根据 nameStudent 对象进行排序。请注意,Student 类中没有 compareTo() 的实现,只有简单的 getter 和 setter,并且该类本身是 school.jar 的一部分> 这是我在我的教育门户项目中使用的。如何访问这些字段,我可以引入相同的基类,但将 Student 类标记为 final

这个用例在技术上是否可行?如果是这样,我该如何实现?

最佳答案

你不需要修改Student类——你可以引入你自己的Comparator :

public class StudentNameComparator implements Comparator<Student> {
    @Override
    int compare(Student s1, Student s2) {
        return s1.getName().compareTo(s2.getName());
    }
}

然后使用它:

Collections.sort(listOfStudents, new StudentNameComparator());

编辑:
强制性注释:Java 8(或更高版本)将允许对此进行一些语法糖(例如 Comparator.comparing(Student::getName)),但要求是使用 Java 7。

关于java - 如何在 Java 7 中对 .class 文件中的属性实现自定义排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65304618/

相关文章:

c++ std::sort 按属性对对象 vector 进行排序

javascript - 准备数组以便在闭包中进行排序

javascript - JavaScript 中的排序函数在某些情况下无法给出正确的输出?

java - 如何在 Java 中显式调用静态初始化器?

java - Intellij 社区无法为 Maven 使用 http 代理

java - Request.getParameterMap 值不可转换为字符串

java - 在线程中调用地理编码器构造函数时,连接崩溃

java - 如何创建签名为 List 的方法

algorithm - 旋转 N 位字的高效排序

java - Java中未知类型的排序列表