[Domino] java.lang.ClassCastException: lotus.domino.cso.Item cannot be cast to lotus.domino.RichTextItem
已解决
lotus-notes
在使用 NCSO API,通过 Domino 的 Document.getFirstItem("Body") 是可以获取当前邮件的 Body 字段,并试图直接转换为 RichTextItem 类型,从而访问该邮件的附件。
但是,有时候这个转换得到了下面的异常:
java.lang.ClassCastException: lotus.domino.cso.Item cannot be cast to lotus.domino.RichTextItem
导致错误的语句就是:
RichTextItem bodyWithAttachs = (RichTextItem)doc.getFirstItem("Body");
已采纳
这种情况我遇到过。
原因在于,这封邮件不一定有 RichTextItem,所以最保险的办法是先转换得到 Item 类型,然后再判断它的 real class name。
否则如果这封邮件是纯文本,那么直接
将会得到这样的异常:
java.lang.ClassCastException: lotus.domino.cso.Item。
解决办法:
先转换得到 Item,再判断这个 Item 的 real class Name 是否为
lotus.domino.cso.RichTextItem
,来决定是否应该进一步作 RichTextItem 强制转换:
类型不匹配,是不是有的 Item 不是 RichTextItem,排除一下。