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

博客介绍了Java中使用Domino时“java.lang.ClassCastException:lotus.domino.cso.Item”异常的解决办法。现象是通过Document.getFirstItem获取邮件Body字段并转换为RichTextItem类型时可能出错,原因是邮件不一定有RichTextItem,解决办法是先转换为Item类型,再判断其类名。
 

[Domino]

java.lang.ClassCastExceptionlotus.domino.cso.Item

异常解决办法

编写者<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

日期

关键词

郑昀@ultrapower

2005-6

Java Domino RichTextItem

 

现象

通过DominoDocument.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,再判断这个Itemreal 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

 

转载于:https://www.cnblogs.com/zhengyun_ustc/archive/2005/09/19/239878.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值