クラスコンストラクターに一致する構造化型 ins 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 を使用したマニフェストを使用して可能であると考えていますが、(構造化された型のようなものを使用して) もっときれいに使用できるかどうか疑問に思っています。