如何为 SimpleObjectProperty<Date> 编写比较器
How to write a comparator for SimpleObjectProperty<Date>
我尝试了以下方法,但均无效:
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
?
当 getter 数据类型设置为 object
时,您无法比较 SimpleObjectProperty
,并且 getter 不应设置为 object
] 反正
SimpleObjectProperty
实际上是一个泛型:SimpleObjectProperty<T>
,数据类型为T
。因此,就我而言,将 getter 的数据类型从 Object
更改为 Date
并将比较器修改为这样读取: return o1.getFirstFoundDate().compareTo(o2.getFirstFoundDate())
解决了问题。
我尝试了以下方法,但均无效:
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
?
当 getter 数据类型设置为 object
时,您无法比较 SimpleObjectProperty
,并且 getter 不应设置为 object
] 反正
SimpleObjectProperty
实际上是一个泛型:SimpleObjectProperty<T>
,数据类型为T
。因此,就我而言,将 getter 的数据类型从 Object
更改为 Date
并将比较器修改为这样读取: return o1.getFirstFoundDate().compareTo(o2.getFirstFoundDate())
解决了问题。