gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 11:54:28 24 4
gpt4 key购买 nike

我的应用程序由 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com