我已动态定义了Scala类,但为了“正确”使用它,它需要有一个ScalaSig。
那么,我如何在正常编译之外生成ScalaSig?也许是从树上来的?也许像:
val tb = runtimeMirror(getClass.getClassLoader).mkToolBox()
val classDef = """class MyRecord(x: String)"""
val tree = showRaw(tb.parse(classDef))
但是挑选者在哪里进来?
感谢您的任何建议 -Julian
答案 0 :(得分:0)
Artisanal-Pickle-Maker将逐字节重现Scala pickled签名(请参阅限制)。
进入编译器的pickler阶段,以及重用Pickler
的代码,证明过于具有挑战性,因此我使用PickleBuffer
,ShowPickled
和整个lotta {{ 1}}弄清楚如何生成任意酸洗的Scala sigs。