型パラメータではなく抽象型を使用します。私の一般的なクラスのコンストラクタでスカラクラスのコンストラクタと抽象型
、私はジェネリック型のパラメータを持つようにしたいが、コードはコンパイルされません:
class SomeOtherClass(val s: S){
type S
}
をScalaのコンパイラエラーがさ「が見つかりません:タイプS」
私は抽象型ではなく型パラメータを使用する場合、それは動作します:私が持っているしたい場合は
class SomeClass[T](val t: T){
//...
}
いScalaの力は、私は、抽象型ではなく、型パラメータを使用しますコンストラクタの汎用パラメータ?
これを行う別の方法はありますか?
面白いことに、これはあなたが '新しいSomeClass(5.asInstanceOf [SomeClass#S]){type S = Int}'インスタンスを作成することを可能にします。安全性がないことに注意してください.Sはまだキャストでは未定義です。 – Kaito
基本的にそれを正しく行うには、私は他の2つの答えを見なければなりませんか? –
@AntKutscheraはい。 – Nicolas