我经常在我的项目中写这个实用程序:
def instance[T](implicit m: Manifest[T]) =
m.erasure.newInstance.asInstanceOf[T]
它看起来像标准库中的某些内容,但我无法找到它。我错过了吗?如果没有可以添加它的权力:)
修改
如果T缺少no-arg构造函数的运行时异常是不可接受的,则可以定义
def maybeInstance[T:Manifest] = try Some(instance[T]) catch {case _ => None}
可能将基础instance
函数设为私有。
但是,许多标准函数会抛出运行时异常,
包括分工和许多网络运营。