是否可以在 scala 中创建结构化类型以匹配类构造函数(与类中的方法/函数定义相反)
为了通常匹配一个类的方法调用,你会做这样的事情
type SomeType : {def someMethod:String}
这使您可以制作一些像这样的方法
someMethod(a:SomeType) = {
println(a.someMethod)
}
这样的东西相当于什么
type AnotherType: {.......}
这将适用于这样的事情
class UserId(val id:Long) extends AnyVal
所以你可以做这样的事情
anotherMethod(a:AnotherType,id:Long):AnotherType = {
new a(id)
}
anotherMethod(UserId,3) // Will return an instance of UserId(3)
我相信使用runtimeClass和getConstructors使用清单是可能的,但是我想知道这是否可以更干净地使用(通过使用结构化类型之类的东西)