以下代码抛出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。我做错了什么?
答案 0 :(得分:5)
永远不要在代码中使用魔法值,它只会让你痛苦。尝试:
int messagesToDisplay = 100;
folder.getMessages(totalMessages - messagesToDisplay , totalMessages);
从JavaDoc开始,使用基于1的数组识别消息而不是0。
请同时添加堆栈跟踪。
答案 1 :(得分:0)
请先在read或read_write模式下打开文件夹。
folder.open(Folder.READ_WRITE);