设计库api vis-a-scala Set的不变性

时间:2015-11-27 08:40:06

标签: scala

想象一下用于从图中移除顶点和边的api。我希望下面这个api是不言自明的,但注意Addable是一个特征。

  /*
   * Convenience method for bulk removal of both vertices and edges
   */
  def -= (inputs: Set[Addable]): AbstractGraph[VertexID, Vertex, Edge] = {
    inputs foreach {
      case v : AbstractVertex[VertexID]  => -= (v.asInstanceOf[Vertex])
      case e : AbstractEdge[VertexID]    => -= (e.asInstanceOf[Edge])
    }
  }

由于Addable的不变性,此api函数不能用于具体Addable(那些extendending Set)的集合。在api中解决它的任何好主意,而不是在呼叫站点?

0 个答案:

没有答案