您的位置:首页 > 编程语言 > Java开发

[Domino]“java.lang.ClassCastException:lotus.domino.cso.Item”异常解决办法

2007-12-17 10:47 573 查看

[Domino]

“java.lang.ClassCastException:lotus.domino.cso.Item”

异常解决办法

编写者

日期

关键词

郑昀@ultrapower

2005-6

Java Domino RichTextItem

现象

通过Domino的Document.getFirstItem("Body")是可以获取当前邮件的Body字段,并试图直接转换为RichTextItem类型,从而访问该邮件的附件。

但是,有时候这个转换得到了下面的异常:

Log提示:

Exception:

java.lang.ClassCastException: lotus.domino.cso.Item

[/b]

导致错误的语句就是:

代码:

RichTextItem bodyWithAttachs =

(RichTextItem)doc.getFirstItem("Body");

[/b]

原因

原因在于,这封邮件不一定有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

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=485047
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐