1
4

1 回答 1

2

您的最后一段代码更接近地模仿了您正在模拟的 Java 代码:返回一个可变 Set 的只读视图。

也就是说,在这种情况下,如果您的支持实现是 immutable.Set[ProductImpl] 并且您想返回一个 immutable.Set[IProduct],则可以安全地进行转换。

import scala.collection._

trait IProduct
class ProductImpl extends IProduct

val productsByIsin: immutable.Map[String, immutable.Set[ProductImpl]] =
  immutable.Map.empty
def getProducts(isin: String): immutable.Set[IProduct] =
  productsByIsin.getOrElse(isin, immutable.Set.empty).asInstanceOf[immutable.Set[IProduct]]
于 2009-03-25T09:06:38.187 回答