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

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

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

public static Comparator<ModelDefects> sortFirstFoundDateAscending() {
        return new Comparator<ModelDefects>() {
            @Override
            public int compare(ModelDefects o1, ModelDefects o2) {
                return o1.getFirstFoundDate() - o2.getFirstFoundDate();
            }
        };
    }
public static Comparator<ModelDefects> sortFirstFoundDateAscending() {
        return new Comparator<ModelDefects>() {
            @Override
            public int compare(ModelDefects o1, ModelDefects o2) {
                return o1.getFirstFoundDate().compareTo(o2.getFirstFoundDate());
            }
        };
    }

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

//Declaration:
    private SimpleObjectProperty<Date> firstfounddate;

//Initialisation in Constructor:
    this.firstfounddate = new SimpleObjectProperty<>();

//First Found Date
    public Object getFirstFoundDate() {
        return firstfounddate.get();
    }

    public void setFirstFoundDate(Date firstFoundDateArg) {
        this.firstfounddate.set(firstFoundDateArg);
    }

    public SimpleObjectProperty<Date> firstFoundDateProperty() {
        return firstfounddate;
    }

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

z9smfwbn

z9smfwbn1#

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

相关问题