Я динамически определил класс Scala, но для того, чтобы использовать его «правильно», он должен иметь ScalaSig.Как я могу создать собственный ScalaSig?
Итак, как я могу сгенерировать ScalaSig вне обычной компиляции? Может, из дерева? Возможно, например:
val tb = runtimeMirror(getClass.getClassLoader).mkToolBox()
val classDef = """class MyRecord(x: String)"""
val tree = showRaw(tb.parse(classDef))
Но куда же входит сборщик?
Спасибо за любые советы -Julian
Считаете ли вы использование инструментария для определения класса? Затем он автоматически генерирует необходимые сигнатуры. –
Привет, Евгений, да, но определение класса происходит во время выполнения. Правильно ли я полагаю, что панели инструментов будут работать только во время компиляции? Могу я рассказать вам, как я возбужден для макросов типа !? –
Инструментальные панели работают во время выполнения. Этот запрос на растяжение позволяет им определять общедоступные классы: https://github.com/scala/scala/pull/2662, но это для 2.11. Между тем, в 2.10 вы можете использовать https://gist.github.com/xeno-by/5845539. Пожалуйста, дайте мне знать, если что-то не работает. –