【发布时间】:2013-11-30 14:47:26
【问题描述】:
我试图了解当且仅当创建了 3 个或更多 Jpeg 对象时才调用 compare 方法。
目标是在将 Jpeg 时间戳添加到表之前按升序对它们进行排序。
private class ExtractJpegMetadata extends Task {
private File[] selectedJpegs;
private Jpeg jpeg;
public ExtractJpegMetadata(Application application, File[] selectedJpegs) {
super(application);
this.selectedJpegs = selectedJpegs;
}
@Override
protected Object doInBackground() throws Exception {
setMessage("Extracting jpeg metadata.");
for (File file : selectedJpegs) {
com.drew.metadata.Metadata metadata = ImageMetadataReader.readMetadata(file);
// obtain the Exif directory
ExifSubIFDDirectory directory = metadata.getDirectory(ExifSubIFDDirectory.class);
jpeg = new Jpeg();
jpeg.setImgTimestamp(directory.getDate(ExifSubIFDDirectory.TAG_DATETIME_ORIGINAL));
Collections.sort(jpegList, jpeg);
jpegList.add(jpeg);
}
jpegAlbum.setJpegAlbum(jpegList);
return null;
}
@Override
protected void succeeded(Object result) {
setMessage("Finished extracting jpeg metadata.");
updateTableNeeded(true);
}
}
JPEG类
@XmlRootElement
public class Jpeg implements Comparator<Jpeg> {
private Date imgTimestamp;
public Jpeg() {
}
public Jpeg(Date imgTimestamp) {
this.imgTimestamp = imgTimestamp;
}
public Date getImgTimestamp() {
return imgTimestamp;
}
@XmlElement
public void setImgTimestamp(Date imgTimestamp) {
this.imgTimestamp = imgTimestamp;
}
public int compare(Jpeg t, Jpeg t1) {
return t.getImgTimestamp().compareTo(t1.getImgTimestamp());
}
}
【问题讨论】:
标签: java date compare compareto