私はScalazを始めたばかりです。スーパークラスで自分のタイプの Zero を定義しようとしています。
class Base {
implicit def BaseZ: Zero[this.type] = zero(classOf[this.type].newInstance() )
}
class Child extends Base
~Option(null:Child) //trying to make this produce: new Child
次の 2 つのエラーが発生します。
1)そのまま、これは生成します"error: class type required but Base.this.type found"
2) this.type の 2 番目のオカレンスを Base に変更すると (これは役に立ちません)、次のようになります。
型の不一致;
found : ベース
が必要です: Base.this.type
this.type ここで何が問題なのかを理解してくれる人はいますか? 型パラメーターを Base に渡したりオーバーライドしたりする必要はありません。