我想知道 Scala中是否可以使用以下内容(但我认为这个问题也适用于 Java): 动态创建一个Scala文件(好的,这里没问题) 编译它(我认为这不是一个真正的问题) 动态加载/卸载新类 除了知道动
>动态创建一个Scala文件(好的,这里没问题)
>编译它(我认为这不是一个真正的问题)
>动态加载/卸载新类
除了知道动态代码加载/重新加载是否可行(这在Java中是可能的,所以我认为它在Scala中也是可行的)我还想知道这在性能下降方面的含义(我可以有很多类,没有名字冲突,但真的很多!).
TIA!
P.S.:我知道有关Scala中类加载的其他问题,但我还没有找到关于性能的答案!
是的,你想做的一切当然是可能的.您可能想看看 ScalaMock,这是动态创建Scala源代码的示例.在 SBT,这是从代码调用编译器的一个例子.然后有许多不同的系统可以动态加载类 – 以 loadLibrary的文档为出发点.但是,根据您想要实现的目标,您可能希望查看Scala Macros.它们提供了与生成源代码然后编译它所获得的相同的灵活性,但没有该方法的许多缺点. ScalaMock的原始版本过去通过生成源代码来工作,但是I’m in the process of moving to using macros instead.