反序列化不存在的接口实现

时间:2018-10-28 17:03:02

标签: java serialization kotlin jvm deserialization

想象一下两个具有公共接口的独立项目-例如,它们都包含interface CommonA。现在,运行Program#1包含class Project1Class : CommonA,但第二个不包含。尽管不知道它的实现,是否可以通过某种方式进行序列化,传输(即通过网络)然后在Program#2中反序列化Project1Class的实例?

我的问题如下:

Program#2提供了用于繁重任务计算的接口-您实现表示应该如何计算的接口(一切都是不可变的)。我想要第二个Program#1(与#2完全分开),在其中实现了这些接口,并在运行时将其发送到Program#2,然后反序列化这些类,将它们用于计算和然后返回计算数据。

例如-Program#2不知道如何执行+操作,但是为接口interface NumberMagic提供方法int doStuff(int a, int b)。在Program#1中,此接口的实现类似于class Add : NumberMagic { override int doStuff(int a, int b) { return a + b; } }。但是为Program#1供电的机器的功能不足以执行此工作,因此需要将其发送到Program#2

JVM世界(更具体地说是Kotlin)。 -有办法吗?甚至可以发送Add类的“源代码”,然后在运行Program#2的计算机上编译它?

0 个答案:

没有答案