Voglio utilizzare un tipo astratto piuttosto che un parametro di tipo.costruttori di scala di scala e tipi astratti
Nel mio costruttore classi generiche, voglio avere un parametro di tipo generico, ma il codice non compilazione:
class SomeOtherClass(val s: S){
type S
}
L'errore scala compilatore è "non trovato: tipo S"
Se uso un parametro di tipo, invece di un tipo astratto, allora funziona:
class SomeClass[T](val t: T){
//...
}
costringe Scala me di utilizzare un parametro di tipo piuttosto che un tipo astratto, se voglio avere un parametro generico nel costruttore?
C'è un altro modo per farlo?
Abbastanza divertente questo vi permetterà di creare istanze 'new SomeClass (5.asInstanceOf [SomeClass # S]) {type S = Int}'. Nota che non c'è sicurezza, S è ancora indefinito nel cast. – Kaito
Quindi, fondamentalmente per farlo bene, devo guardare le altre due risposte? –
@AntKutschera sì. – Nicolas