私の現在のプロジェクトでは、単一の密閉された特性をサブクラス化する多くのケースオブジェクトを定義する必要があります。これらのオブジェクトの名前は、パターン、例えばCase1、Case2、Case3、...、CaseNを有する。私は、N行の定義を書くのではなく、ループを使って、これらすべての事例オブジェクトをプログラム的な方法で定義する方法がスカラーにあるかどうか疑問に思っていました。Scalaのcaseオブジェクトをプログラムで定義することは可能ですか?
可能であれば、コンパイル時にこれを実行して、このように定義されたcaseオブジェクトが型チェックを行うことがわかっているといいでしょう。これはほとんどの言語では不可能です(Pythonのような動的に定義された型を持つことも、C/C++のような静的型の安全性を持つこともできますが、どちらもできません)。
しかし、なぜ、あなたはクラスを作成し、実行時にオブジェクトを作成しないのだろうか? –
クラスのインスタンス、特に完全なパターンマッチングでパターンマッチングを行うことはできないためです。 – uraj
クラスのいくつかのプロパティによるパターンマッチングはどうですか?プロパティのパターンを持つオブジェクトを作成し、そのプロパティで一致させます。 –