繁体   English   中英

如何使用 Eclipse EMF 复制通用列表?

[英]How to copy a generic list with Eclipse EMF?

如何将一个 Elist 拆分为两个 Elist 而不会出现 NullPointerException。 我已经尝试过 EcoreUtil.copy() / Collections.copy。 问题似乎是在声明复制目标列表时需要使用 = null; 进行初始化。 我还尝试使用迭代器来复制元素,并尝试使用 .set() .add() 添加它们,所有这些都以上面的异常退出。 目标列表的声明似乎只适用于分配。 在调试时,我清楚地看到列表中复制的对象不为空。

 EList<RtTask> tasks = rtModule.getTasks();
 EList<RtModuleInvocation> invoc0 = null; //target List
        for (RtTask rtTask : tasks) {
            EList<RtModuleInvocation> invocations = rtTask.getModuleInvocations(); //src List

谢谢。

感谢https://www.programcreek.com/java-api-examples/emf我找到了使用构造函数初始化我的 Elist 的正确方法,该构造函数创建一个没有初始容量的空实例。数据存储将为空。 和 HOP 它的工作原理。

EList<RtModuleInvocation> invoc0 = new BasicEList<>();

如果您想要一个列表的副本,您还可以使用ECollections实用程序:

ECollections.newBasicEList(Iterable)
创建一个包含给定元素的可变BasicEList

因此,要复制RtModuleInvocation列表,您可以使用:

ECollections.newBasicEList(rtTask.getModuleInvocations())

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM