抽象的で、一連のケースクラスを持つクラスAを想像してみてください。セットクラスの数や、それらのケースクラスの名前すらわかりません。
abstract class A(field: String)
//Example of a case class that extends A
case class B(f: String) extends A(f)
今私はこれを持っています:
a match {
case B(f) => println("f")
}
そして、引数でcaseクラス型をメソッドに渡したい。これが必要な理由は、ファイルに一連のルールを構成するためです。そして、それらのルールをロードし、それらのルールが提供するいくつかの情報とのパターンマッチングを使用したいと思います。私はこのようなことをしたい:
def printer (a: A, B: A) = {
a match{
case B(f) => println("f")
}
}
これは可能ですか?
それほど簡単ではない場合、パターンマッチングで抽象クラスを使用できますか?抽象クラスはすべてのケースクラスの主要な構造を持っているので、単純に抽象クラスを使用できれば完璧です。
編集:
ケースクラスは異なる引数を持つ可能性があるため、クラスAに基づいたものを使用することをお勧めします(フィールドとのみパターンマッチングを実行できるため)