ile kullanma "ekleme" yöntemine (örneğin, bir java koleksiyonu) sahip herhangi bir koleksiyonu tanımlayan bir yapısal tür tanımlamaya çalışıyorum. Bu kullanarak, ben GenericCollection üzerinde parametreyi çıkarıp koyarak çalıştıScala yapısal türlerini soyut
error: Parameter type in structural refinement may not refer to abstract type defined outside that same refinement
aşağıdaki hata ile derleme değil belli koleksiyon
object GenericTypes {
type GenericCollection[T] = { def add(value: T): java.lang.Boolean}
}
import GenericTypes._
trait HigherOrderFunctions[T, CollectionType[X] <: GenericCollection[X]] {
def map[V](fn: (T) => V): CollectionType[V]
....
}
class RichJList[T](list: List[T]) extends HigherOrderFunctions[T, java.util.List]
Bu ameliyat bir kaç yüksek mertebeden fonksiyonlarını tanımlamak istediğiniz yöntem üzerinde:
:object GenericTypes {
type GenericCollection = { def add[T](value: T): java.lang.Boolean}
}
import GenericTypes._
trait HigherOrderFunctions[T, CollectionType[X] <: GenericCollection]
class RichJList[T](list: List[T]) extends HigherOrderFunctions[T, java.util.List]
ama başka hata alıyorum
Scala'da soyut yazılı parametrelerle yapısal yazımın nasıl kullanıldığına dair bana bir tavsiyede bulunabilir mi? Ya da neyi başarmak istediğimi nasıl elde edeceğim? Çok teşekkürler!