我试过以下方法,但都不管用:
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
?
1条答案
按热度按时间z9smfwbn1#
你无法比较
SimpleObjectProperty
当getter数据类型设置为object
,而getter不应设置为object
不管怎样。这个
SimpleObjectProperty
实际上是一个泛型:SimpleObjectProperty<T>
数据类型为T
. 在我的例子中,将getter的数据类型从Object
至Date
以及将比较器修改为:return o1.getFirstFoundDate().compareTo(o2.getFirstFoundDate())
解决了这个问题。