List<实体类>根据实体类的两个属性值的差的绝对进行降序排序

问题遇到的现象和发生背景

如何实现 List<实体类>根据实体类的两个属性值的差的绝对进行降序排序

问题相关代码,请勿粘贴截图
public class PostPreparationInfo extends BaseModel implements Comparable<PostPreparationInfo> {
  
    private String preparationNumberFront;
    private String preparationNumberAfter;
 
    @Override
    public int compareTo(PostPreparationInfo o) {
        return (Math.abs(Integer.parseInt(nvl(o.getPreparationNumberAfter())) - Integer.parseInt(nvl(o.getPreparationNumberFront()))));
    }
}

nvl是把空转成“ ”
运行结果及报错内容

不起作用

我的解答思路和尝试过的方法

重写compare方法

我想要达到的结果

要求2个属性的差的绝对值 进行比较;你这只是某一个属性的2属性差的绝对值

return (Math.abs(Integer.parseInt(nvl(this.getPreparationNumberAfter())) - Integer.parseInt(nvl(this.getPreparationNumberFront()))))

(Math.abs(Integer.parseInt(nvl(o.getPreparationNumberAfter())) - Integer.parseInt(nvl(o.getPreparationNumberFront()))));

不知道符不符合你可以看看


     Stu stu =new Stu();
        Stu stu1 =new Stu();
        Stu stu2 =new Stu();
        Stu stu3 =new Stu();
        stu.setName("mls");
        stu.setSex("男");
        stu.setAge(18);
        stu.setDept("it");
        stu.setWeight(90);

        stu1.setName("lls");
        stu1.setSex("男");
        stu1.setAge(18);
        stu1.setDept("it");
        stu1.setWeight(100);

        stu2.setName("hyf");
        stu2.setSex("男");
        stu2.setAge(80);
        stu2.setDept("it");
        stu2.setWeight(110);

        stu3.setName("ch");
        stu3.setSex("男");
        stu3.setAge(110);
        stu3.setDept("it");
        stu3.setWeight(120);
        List<Stu> stus =new ArrayList<>();
        stus.add(stu);
        stus.add(stu1);
        stus.add(stu2);
        stus.add(stu3);
        stus=stus.stream().sorted(Comparator.comparing(count -> {
           int k= count.getWeight()-count.getAge();
           return k;
        })).collect(Collectors.toList());
        System.out.println(stus);