Что такое папка JavaMail типа 3? - PullRequest
1 голос
/ 11 декабря 2010

Я знаю, что JavaMail знает следующие типы папок IMAP:

Folder.HOLDS_MESSAGES (который равен константе 1) а также Folder.HOLDS_FOLDERS (который равен константе 2).

Итак, сегодня я сделал:

int type = folder.getType();

в папке с именем «Черновики», которая должна быть типа 2.

Но тип переменной содержит значение 3, которое, похоже, нигде не документировано.

Что означает тип 3?

1 Ответ

4 голосов
/ 11 декабря 2010

Из ApiDoc Folder.getType :

Возвращает тип этой папки, который есть, может ли эта папка содержать сообщения или подпапки или оба. возвращаемое значение является целочисленным битовым полем с установленными соответствующими битами.

Таким образом, 3 в данном случае является просто результатом 2 + 1, что означает, что ваша папка - HOLDS_MESSAGES и HOLDS_FOLDERS.

Помните: int - это битовое поле. Вы должны проверить это так:

 if ((folder.getType() & Folder.HOLDS_FOLDERS) != 0)

и т. Д., Не используйте == в качестве оператора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...