私は自己再帰型を持っています:
trait Problem[P <: Problem[P]] {
type Solution
}
今、私はでパターンマッチしたいですP#Solution
。内にいると仮定しましょうcase class Foo[P <: Problem[P]]()
:
case ExampleCaseClass(s: P#Solution) if conditionApplies() =>
// do sth
case ExampleCaseClass(s: P#Solution) =>
// now sth else
もちろん、型消去のために失敗します。そのコードをscalaでコンパイルする方法はありますか?
class/type タグを見たことがありますが、そのような場合に使用できるかどうかはよくわかりません。