问题描述
|
以下代码引发indexoutofboundsexception。知道为什么吗?
Folder folder = store.getDefaultFolder();
folder = folder.getFolder(\"INBox\");
int totalMessages = folder.getMessageCount();
//totalMessages is 17000
folder.getMessages(16900,16999) --- here I am trying to get the NEWEST 99 messages.
即使有太多邮件,此代码也会引发异常indexoutofbounds。我究竟做错了什么?
folder.getMessages()-获取从第一封电子邮件到最后一封电子邮件的所有电子邮件。以我为例17000!如何获得从最新到最旧的电子邮件?
我只想查看最新的电子邮件-其中大约100封。这可能吗?
解决方法
永远不要在代码中使用魔术值,这只会使您痛苦。尝试:
int messagesToDisplay = 100;
folder.getMessages(totalMessages - messagesToDisplay,totalMessages);
从JavaDoc中,将使用基于1的数组而不是0来标识消息。
您还可以添加堆栈跟踪信息吗?
, 请首先以读取或读写模式打开文件夹。
folder.open(Folder.READ_WRITE);