编写者
|
日期
|
关键词
|
郑昀@ultrapower
|
2005-6
|
Java Domino RichTextItem
|
通过Domino的Document.getFirstItem("Body")是可以获取当前邮件的Body字段,并试图直接转换为RichTextItem类型,从而访问该邮件的附件。
但是,有时候这个转换得到了下面的异常:
Log提示:
|
Exception:
java.lang.ClassCastException: lotus.domino.cso.Item
|
导致错误的语句就是:
代码:
|
RichTextItem bodyWithAttachs =
(RichTextItem)doc.getFirstItem("Body");
|
原因在于,这封邮件不一定有RichTextItem,所以最保险的办法是先转换得到Item类型,然后再判断它的real class name。
否则如果这封邮件是纯文本,那么直接
RichTextItem bodyWithAttachs =
(RichTextItem)doc.getFirstItem("Body");
将会得到这样的异常:
java.lang.ClassCastException: lotus.domino.cso.Item。
先转换得到Item,再判断这个Item的real class Name是否为
“lotus.domino.cso.RichTextItem”,
来决定是否应该进一步作RichTextItem强制转换:
Log提示:
|
// grab the Body field of the current document,
// and check each attachment
Item itRichText = doc.getFirstItem("Body");
if("lotus.domino.cso.RichTextItem" ==
itRichText.getClass().getName() )
{
/*
* 不一定这封邮件有RichTextItem,所以最保险的办法是先转换得到Item类型,
* 然后再判断它的类名。
* 否则如果这封邮件是纯文本,那么直接
* RichTextItem bodyWithAttachs =
(RichTextItem)doc.getFirstItem("Body");
将会得到这样的异常:
java.lang.ClassCastException: lotus.domino.cso.Item
*/
RichTextItem bodyWithAttachs =
(RichTextItem)itRichText;
|
虽然是一个很小的细节,但还是写下来了。
编写者
|
日期
|
关键词
|
郑昀@ultrapower
|
2005-6
|
Java Domino RichTextItem
|