javamail Search

来源:百度知道 编辑:UC知道 时间:2024/05/17 18:52:59
try{
SubjectTerm subjectTerm=new SubjectTerm(subject);
SearchTerm st=new AndTerm(subjectTerm,new FromStringTerm(mailMessage.mailAddress));
message=folder.search(st);
if(message==null)
System.out.println("null");
System.out.println(message.length);}
catch (MessagingException e){
e.printStackTrace();
}
在上面的代码输出中为
0
但在
message=folder.getMessages();
的输出及我的信箱中可以看到主题 为subject和发信人的地址为mailMessage.mailAddress的信件,
????

这个问题你首先要理解什么是message,查API得:

message
要置于对话框中的描述消息。在最常见的应用中,message 就是一个 String 或 String 常量。不过,此参数的类型实际上是 Object。其解释依赖于其类型:
Object[]
对象数组被解释为在纵向堆栈中排列的一系列 message(每个对象一个)。解释是递归式的,即根据其类型解释数组中的每个对象。
Component
该 Component 在对话框中显示。
Icon
该 Icon 被包装在 JLabel 中并在对话框中显示。
其他
该对象通过调用其 toString 方法被转换为 String。结果被包装在 JLabel 中显示

---结论:
message不是你想象中的数组,你要查它的长度,因此是0.
如果你用了toString方法,则会输出信件的长度

回答完毕