2016-09-10 12 views
0

私は初心者のJavaの背景から来たScalaを初めて使いました。Scala:クラス型パラメータが抽象サブクラスを継承しています

私は抽象サブクラスBuilderを持つクラスArbitrageを持っています。 Arbitrageの型パラメータで抽象サブクラスを拡張したいと思います。

例:

abstract class Arbitrage[T <: Builder[T]] { 
    // lots of code 
    abstract class Builder[T]{ 
     // build pattern code 
    } 
} 

しかし、これはコンパイルされませんし、IntelliJのは、それがビルダー 『「シンボルを解決できない』ことを私に知らせ、私は

class Arbitrage[T <: Ordered[T]] 

にクラス署名を変更する場合、それがコンパイルされます。ので、私はそれは、視認性の問題だかなり確信しています。

よろしく

+1

これで何をしようとしていますか? –

+0

@ m-zさて、抽象クラス裁定とサブクラスBuilderは、アービトラージを拡張するさまざまなクラスのフォーマットです。 SpacialArbitrage、MergerArbitrage、BondArbitrageと呼ぶことにしましょう。 これらはすべてアービトラージュを拡張し、それぞれのビルダーはアービトラージのビルダーを拡張するので、書きやすくなります。 「ビルダー」は、あなたが推測するように、Java Builderパターンに従っています。 – sudom82

答えて

0

I

私は、Arbitrage.BuilderなどのサブクラスにアクセスするためにJava構文を使用していましたが、これはArbitrage#Builderだったので、これはScalaの構文です。

+0

は、(少なくともScalaでは)サブクラスの代わりに内部クラスと呼ばれる方法で、 – Qingwei

関連する問題