java - 在两个不同的插件中转换为相同的类型

标签 java eclipse arraylist rcp e4

我的应用程序由 2 个插件组成。

对于每个插件,我声明了一个名为 TYPE 的类,因为我需要 ArrayList 的自定义数据类型。这两个插件的 TYPE 类是相同的。

场景如下:

 Plugin1.TYPE - Plugin2.TYPE
 Plugin1.ArrayList<TYPE> - Plugin2.ArrayList<TYPE>

现在我想将 Plugin1.ArrayList 的内容分配到 Plugin2.ArrayList 中,但即使类类型相同,我也会遇到强制转换问题。

基本上,即使两个类具有相同的内容,它们也会被视为不同的实体,因此会弹出强制转换异常。

  plugin1.TYPE cannot be cast to plugin2.TYPE 

有什么帮助吗?我该如何处理?

最佳答案

你能制作第三个插件来继承其他两个插件吗?这是最好的解决方案,因为类加载器 hell 从来都不是有趣的。

或者,您可以创建第三个插件,其中包含其他两个插件可以使用的所有代码吗?

如果您无法使用这些解决方案中的任何一个,并且绝对陷入困境,那么最好的选择是使用 xstream 。您需要做的就是在一个插件中以 XML 形式写出对象,将 XML 作为字符串传递给第二个插件,然后让该插件将您的对象从那里加载回内存中。每个插件必须使用自己的 XStream 版本,但这应该可以工作。

(请注意,您可以简单地序列化对象,而不是使用 XStream,这取决于您的网络服务器,以及是否分布在不同的正在运行的 Java 进程中)

干杯,

      Emily

关于java - 在两个不同的插件中转换为相同的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28548324/

相关文章:

java - 列表正在用最新值替换所有旧值

java - 通过 JTextField 的内容搜索 arraylist - arraylist.contains(jtextfield)

java - 在 yaml 上更改并坚持使用 @Value 注释的属性的更改

java - 推特授权

java - Spring MVC 在使用 Ajax 调用时返回简单文本而不是 JSON

java - 从 eclipse 中的链接文件夹中读取 java 中的文件

java - Eclipse:在独立的 SourceViewer 小部件中启用 Java 错误标记

java - 通过套接字从 Android 客户端向 Java 服务器发送图像时数据丢失

java - 创建一个可以使用开放街道 map 跟踪位置的应用程序

java - int 无法转换为 charsequence