tôi đang học scala và cố gắng hình thức sau đây Scala Cookbook:Scala trường hợp lớp mở rộng sản phẩm với Serializable
trait Animal
trait FurryAnimal extends Animal
case class Dog(name:String) extends Animal
case class Cat(name:String) extends Animal
Bây giờ khi tôi đã sau như:
val x = Array(Dog("Fido"),Cat("Felix"))
nó hiển thị kết quả như sau:
x:Array[Product with Serializable with Animal] = Array(Dog(Fido),Cat(Felix))
Mặc dù tôi biết rằng một trường hợp được trộn lẫn với Đặc điểm sản phẩm
gì tôi không nhận được là: Product with Serializable with Animal
Theo hiểu biết của tôi Sản phẩm có cái gì để làm với mẫu phù hợp với
Tôi đã google nó nhưng đã không nhận được anything.Please Trợ giúp để cho tôi khái niệm chi tiết.
Cảm ơn
Đây là mảng không đồng nhất và cả phần tử mở rộng Động vật, do đó có Động vật. Nếu bạn đặt cả hai lớp trường hợp này vào trong một trường hợp khác và sau đó thêm lớp đó vào mảng đó. bạn sẽ nhận được mảng của lớp vỏ. Tôi đã tự tìm kiếm một bản đọc tốt trên Sản phẩm này với Serializable một thời gian .. Nhưng không tìm thấy. Có lẽ ai đó có thể xóa suy nghĩ của chúng tôi. –
http://underscore.io/blog/posts/2015/06/04/more-on-sealed.html –
cũng https://github.com/scala/scala-abide/issues/41 –