想象一下两个具有公共接口的独立项目-例如,它们都包含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
的计算机上编译它?