Полиморфная реализация в Scala с использованием TypeTag и ClassTag
В Scala 2.9 можно реализовать полиморфную реализацию как
def newInstance[T](implicit m: Manifest[T]) =
m.erasure.newInstance.asInstanceOf[T]
но по состоянию на 2.10Manifest
заменяетсяTypeTag
и мне не понятно, как добиться чего-то подобного сTypeTag
, Я бы предпочел, чтобы версия TypeTag сохранила всю доступную информацию о типах.
Я знаю, что вышеупомянутое работает только для черт / классов, которые не требуют аргументов конструктора, и тогда это не всегда работает, но это работает достаточно хорошо для того, что мне нужно. Если бы я мог сделать лучше новые API отражения, это было бы здорово.