Проблема: Моя программа принимает строку JSON как inpu, которая содержит имя udf, определение функции и тип. например.
{
"udfList": [
{
"name": "add"
"definition": "(x: Int, y:int) => x+y"
"type": "(Int, Int) => Int"
}
]
}
JSON может содержать любую функцию и тип. Как я могу использовать отражение scala, чтобы преобразовать эту строку в фактическую функцию и привести ее к заданному типу, а затем зарегистрировать ее как udf с заданным именем.
Пробовал:
val myFunc = """(x: Int, y:int) => x+y"""
val tb = runtimeMirror(getClass.getClassLoader).mkToolBox()
val tree = tb.parse(myFunc)
val fun = tb.eval(tree)
Я не могу преобразовать его динамически, потому что тип передается как String. Так есть ли способ сделать это динамически?