📄 messagecomparator.java
字号:
package net.sf.pim.mail.reader;
import java.text.Collator;
import java.util.Comparator;
import java.util.Locale;
import javax.mail.Message;
import javax.mail.MessagingException;
/**
* 邮件的比较器
* @author levin
*/
public class MessageComparator implements Comparator {
private String prop; //比较的属性
private boolean asc; //是否升序
public MessageComparator(String prop, boolean asc) {
super();
this.prop = prop;
this.asc = asc;
}
public int compare(Object o1, Object o2) {
if(o1 instanceof Message && o2 instanceof Message){
if(asc)
return compareMessage((Message)o1,(Message)o2);
else
return compareMessage((Message)o2,(Message)o1);
}
return 0;
}
private int compareMessage(Message message1, Message message2) {
try {
//收件用接收时间,发件用发送时间
if(prop.equals("Date")){
if(message1.getReceivedDate() != null && message2.getReceivedDate() != null)
return message1.getReceivedDate().compareTo(message2.getReceivedDate());
else
return message1.getSentDate().compareTo(message2.getSentDate());
}
Collator collator = Collator.getInstance(Locale.getDefault());
String[] p1 = message1.getHeader(prop);
String[] p2=message2.getHeader(prop);
if(p1.length < 1 || p2.length < 1)
return 0;
return collator.compare(p1[0], p2[0]);
} catch (MessagingException e) {
return 0;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -