是否可以动态创建类(或向类添加属性),例如从Scala中的外部文件加载字段名称和类型?
的后续行动答案 0 :(得分:3)
可以通过宏来实现这一点,并且有两种技术可以通过不同的权衡来实现。请参阅我们与Travis Brown的联合谈话,以获取更多信息以及示例实施的链接:https://github.com/travisbrown/type-provider-examples/blob/master/docs/scalar-2014-slides.pdf?raw=true。
答案 1 :(得分:2)
您可以从数据结构描述中声明和编译Scala类。它要求你a)构造一个语法正确的类描述并将其保存到文件(或等效的),然后b)将该类描述编译为目标代码(即.class文件)。然后,您可以加载该类并使用它。
这不适合胆小的人。您需要了解翻译,编译,类加载和动态类绑定的过程。更重要的是,你必须回答如何在程序中实际使用它。
动态类创建的一个示例发生在Scala Play框架中,其中演示模板文件被翻译成Scala并编译成类文件,然后可以从其他Scala源代码中引用。
答案 2 :(得分:1)
您无法使用动态属性创建案例类。要实现您的要求,您可以使用Map
。