Skip to content

Instantly share code, notes, and snippets.

@x3ro
Created September 19, 2012 01:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save x3ro/3747057 to your computer and use it in GitHub Desktop.
Save x3ro/3747057 to your computer and use it in GitHub Desktop.
Scala 2.10 – Reflection against Named Arguments
import scala.reflect.runtime.universe._
import scala.reflect.runtime._
def newInstance(tpe:Type, args:Map[String, Any]) = {
val clazz = tpe.typeSymbol.asClass
val ctor = tpe.member(nme.CONSTRUCTOR).asMethod
var argList = ctor.params(0).map { a => args(a.name.toString) }
currentMirror.reflectClass(clazz).reflectConstructor(ctor)(argList:_*)
}
println(newInstance(typeOf[Foo], args))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment