如何为simpleobjectproperty编写比较器< date>

pobjuy32  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(413)

我试过以下方法,但都不管用:

  1. public static Comparator<ModelDefects> sortFirstFoundDateAscending() {
  2. return new Comparator<ModelDefects>() {
  3. @Override
  4. public int compare(ModelDefects o1, ModelDefects o2) {
  5. return o1.getFirstFoundDate() - o2.getFirstFoundDate();
  6. }
  7. };
  8. }
  1. public static Comparator<ModelDefects> sortFirstFoundDateAscending() {
  2. return new Comparator<ModelDefects>() {
  3. @Override
  4. public int compare(ModelDefects o1, ModelDefects o2) {
  5. return o1.getFirstFoundDate().compareTo(o2.getFirstFoundDate());
  6. }
  7. };
  8. }

也试过了 < 操作员通过 if 声明。这些也没用。大量的网上搜索并没有告诉我答案。
首次发现日期及其方法定义如下:

  1. //Declaration:
  2. private SimpleObjectProperty<Date> firstfounddate;
  3. //Initialisation in Constructor:
  4. this.firstfounddate = new SimpleObjectProperty<>();
  5. //First Found Date
  6. public Object getFirstFoundDate() {
  7. return firstfounddate.get();
  8. }
  9. public void setFirstFoundDate(Date firstFoundDateArg) {
  10. this.firstfounddate.set(firstFoundDateArg);
  11. }
  12. public SimpleObjectProperty<Date> firstFoundDateProperty() {
  13. return firstfounddate;
  14. }

这是一个javafx项目。
我在这里的关键是如何比较 Object 带着一个 Object ?

z9smfwbn

z9smfwbn1#

你无法比较 SimpleObjectProperty 当getter数据类型设置为 object ,而getter不应设置为 object 不管怎样。
这个 SimpleObjectProperty 实际上是一个泛型: SimpleObjectProperty<T> 数据类型为 T . 在我的例子中,将getter的数据类型从 ObjectDate 以及将比较器修改为: return o1.getFirstFoundDate().compareTo(o2.getFirstFoundDate()) 解决了这个问题。

相关问题