抽象クラスでありクラスクラスを持つクラスAを想像してみてください。私たちは、セットクラスがいくつあるのか、それらのケースクラスの名前さえ知っていません。スカラでパターンマッチングで使用するための未知のcaseクラスを引数として受け入れるメソッドを宣言する
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")
}
をそして私はメソッドに引数によってケースクラスの種類を渡したいです。私がこれをしたいのは、ファイルに一連のルールを設定するからです。そして、私はそれらのルールをロードし、それらのルールが提供するいくつかの情報とパターンマッチングを使用したいと思います。私はこのようなことをしたい:
def printer (a: A, B: A) = {
a match{
case B(f) => println("f")
}
}
これは可能ですか?
それほど簡単ではない場合は、パターンマッチングで抽象クラスを使用できますか?すべてのケースクラスの主要な構造を持っているので、抽象クラスを単純に使うことができれば完璧です。
はEDIT:
は、クラスAに基づいて何かを使用するのが良いでしょうので、異なる引数を持つことができ、その場合のクラスを言及するのを忘れた
を書くことができます[あなたが達成しようとして*あなたが本当に*ているものについての詳細を説明する場合は、おそらくより建設的な答えを得るでしょう。](http://homepage.ntlworld.com/jonathan。 deboynepollard/FGA/put-down-the-chocolate-covered-banana.html) –
私はあなたに同意しますが、もしそうすれば、これは一種の巨大な投稿になるでしょう。このように、私は必要なものに集中します。 –