首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能将lotus.domino.local.Item转换为lotus.domino.RichTextItem

不能将lotus.domino.local.Item转换为lotus.domino.RichTextItem
EN

Stack Overflow用户
提问于 2017-06-13 18:13:47
回答 0查看 500关注 0票数 0

我试图把一个文件放到富文本中,但是它崩溃了!在我的第一个代码中,我尝试直接使用"getFirstItem",第一次还可以,但现在我再次尝试使用它,它崩溃了。第二次我传递一个对象,它发现我的obj不是一个richtextItem (instanceof)?

我不明白。我收到消息:“不能将lotus.domino.local.Item转换为lotus.domino.RichTextItem”?你能帮我吗?

代码语言:javascript
复制
public void copieFichierDansRichText(String idDocument, String nomRti, File file,
        String nameFichier, String chemin) throws NotesException {

    lotus.domino.Session session = Utils.getSession();
    lotus.domino.Database db = session.getCurrentDatabase();
    lotus.domino.Document monDoc = db.getDocumentByUNID(idDocument);
    lotus.domino.RichTextItem rtiNew = null;
    try {
        try {
            if (monDoc != null) {
                // if (monDoc.getFirstItem(nomRti) != null) {
                // rtiNew = (lotus.domino.RichTextItem)
                // monDoc.getFirstItem(nomRti);
                // } else {
                // rtiNew = (lotus.domino.RichTextItem)
                // monDoc.createRichTextItem(nomRti);
                // }

                Object obj = null;
                if (monDoc.getFirstItem(nomRti) != null) {
                    obj = monDoc.getFirstItem(nomRti);
                    if (obj instanceof lotus.domino.RichTextItem) {
                        rtiNew = (lotus.domino.RichTextItem) obj;
                    } 
                } else {
                    obj = monDoc.createRichTextItem(nomRti);
                    if (obj instanceof lotus.domino.RichTextItem) {
                        rtiNew = (lotus.domino.RichTextItem) obj;
                    }
                }

                PieceJointe pieceJointe = new PieceJointe();
                pieceJointe = buildPieceJointe(file, nameFichier, chemin);

                rtiNew.embedObject(EmbeddedObject.EMBED_ATTACHMENT, "", pieceJointe.getChemin()
                        + pieceJointe.getNomPiece(), pieceJointe.getNomPiece());
                monDoc.computeWithForm(true, false);
                monDoc.save(true);
            }
        } finally {
            rtiNew.recycle();
            monDoc.recycle();
            db.recycle();
            session.recycle();
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

}

编辑:我试着用你的建议修改我的代码,但这些项目从来没有考虑到丰富的文本项。这是我的问题。我不明白为什么,因为在我的领域中它是一个富文本!对于它,项不能做:

代码语言:javascript
复制
rtiNew = (lotus.domino.RichTextItem) item1;

因为item1不是富文本!我试图获取所有字段并逐个传递项,但它永远不会进入lotus.domini.RichTextItem的obj实例……

代码语言:javascript
复制
Vector items = doc.getItems();
for (int i=0; i<items.size(); i++) {
   // get next element from the Vector (returns java.lang.Object)
   Object obj = items.elementAt(i);

   // is the item a RichTextItem?
   if (obj instanceof RichTextItem) {
      // yes it is - cast it as such // it never go here !!
      rt = (RichTextItem)obj;
   } else {
      // nope - cast it as an Item
      item = (Item)obj;
   }
}
EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44518566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档