Tür parametresi yerine soyut bir tür kullanmak istiyorum. Benim jenerik sınıflar Yapıcıdascala sınıfı kurucular ve soyut tipler
, ben jenerik tipte bir parametre olsun istiyorum, ama kod derleme değil:
class SomeOtherClass(val s: S){
type S
}
scala derleyici hatası "bulunamadı: tip S" olduğu
Ben soyut bir tip yerine bir tür parametresini kullanırsanız, o zaman çalışır: bir yapmak istiyorsanız
class SomeClass[T](val t: T){
//...
}
mu scala kuvvet beni, soyut bir tip yerine bir tür parametresi kullanmak kurucudaki jenerik parametre?
Bunu yapmanın başka bir yolu var mı?
Yeteri kadar komik, bu yeni 'newClass (5.asInstanceOf [SomeClass # S]) {type S = Int}' örneklerini oluşturmanıza izin verecektir. Hiçbir güvenlik olmadığına dikkat ediniz, S hala dökümde tanımsızdır. – Kaito
Temel olarak doğru yapmak için diğer iki cevaba bakmam gerekiyor mu? –
@AntKutschera evet. – Nicolas