Во время компиляции вам понадобится TypeTag
, потому что это способ обойти стирание:
import scala.reflect.runtime.{currentMirror => m, universe => ru}
def getChildSettings[T: TypeTag](path: String, settingsParameterObject: T) = {
val tpe = ru.typeOf[T]
// val classC = tpe.typeSymbol.asClass
val ctor = tpe.declaration(ru.nme.CONSTRUCTOR).asMethod
...
}
В Обзор документации Scala для Reflection приведен пример получение и вызов конструктора.