【问题标题】:ObservableList javafx sort descending with ComparatorObservableList javafx 使用 Comparator 降序排序
【发布时间】:2018-02-05 08:15:22
【问题描述】:

ObservableArrayList.sorted 适用于原始数据类型,但如果不是引用数据类型则无法正常工作

ObservableList<NewClass> observableArrayList = FXCollections.observableArrayList();
            observableArrayList.add(new NewClass(1, "name 1"));
            observableArrayList.add(new NewClass(2, "name 2"));
            observableArrayList.add(new NewClass(4, "name 4"));
            observableArrayList.add(new NewClass(5, "name 5"));
            observableArrayList.add(new NewClass(3, "name 3"));

            observableArrayList.sorted(Comparator.reverseOrder());


class NewClass
private int stt
private int name

错误信息

incompatible types: inference variable T has incompatible bounds
    equality constraints: sf.enforcement.NewClass
    upper bounds: java.lang.Comparable<? super T>

我想按Newclass的stt顺序排序,请帮帮我

【问题讨论】:

    标签: javafx comparator observablelist


    【解决方案1】:

    Comparator.reverseOrder 仅在有撤单时有效。只有NewClass 实现Comparable 时才会出现这种情况。否则你需要使用自定义比较器:

    observableArrayList.sort((a, b) -> Integer.compare(b.getStt(), a.getStt()));
    

    Comparator<NewClass> comparator = Comparator.comparingInt(NewClass::getStt);
    observableArrayList.sort(comparator.reversed());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-07
      • 1970-01-01
      • 2011-08-04
      相关资源
      最近更新 更多