有没有办法’动态’/反射/等在
Scala中创建带有参数的类的新实例?
例如,类似于:
class C(x: String) manifest[C].erasure.newInstance("string")
但那编译. (这也是,请放心,在比这个简化示例更有意义的上下文中使用!)
解决方法
erasure的类型是java.lang.Class,所以你可以使用构造函数(无论如何你不需要在这个简单的情况下使用manifest – 你可以只使用classOf [C]).您可以先使用getConstructor方法(使用相应的参数类型)找到对应的构造函数,然后只需在其上调用newInstance,而不是直接调用newinstance:
classOf[C].getConstructor(classOf[String]).newInstance("string")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。