Во-первых, вам нужно явно передать манифест: я думаю, вы можете, по крайней мере, получить немного Class[_]
(Class.forName
или что-либо еще, основываясь на вашем аргументе clazz
).Вы можете создать манифест с помощью ClassManifest.classType(theClass)
.Вы получаете Manifest[_]
.
Тогда вам просто нужно составить процедуру, которая будет принимать Manifest[_]
def parseUntyped(input: String, m: Manifest[_]) = parse(input)(m)
parse(input)(m)
, набранную правильно.Учитывая, что m, если манифест некоторого типа, вызов является правильным.Конечно, тип возврата parseUntyped
равен Any
, и вам придется привести его обратно к тому, что вы хотите.