小编Ric*_*ard的帖子

创建类型别名的实例会导致"需要类类型"错误

通过混合ObservableSet使用a 创建了一个新类型HashSet,我有点期待替换然后能够使用新类型创建一个新实例,如下面的"foo".但是这不能编译,尽管使用该类型的原始长形式似乎很好(如下面的"条形图"所示).

这只是语言的一个特征还是我做了一些愚蠢的事情?

package whatever

import collection.mutable._
object Whatever {

  type ObservableHashSet[T] = HashSet[T]  with  ObservableSet[T]
  class X


  def foo {
       new  ObservableHashSet[X]
  }

   def bar {
    new HashSet[X]  with  ObservableSet[X]
  }
}
Run Code Online (Sandbox Code Playgroud)

错误是......

error: class type required but scala.collection.mutable.HashSet[scala.Whatever.X] with scala.collection.mutable.ObservableSet[scala.Whatever.X] found
new  ObservableHashSet[X]
Run Code Online (Sandbox Code Playgroud)

scala

11
推荐指数
1
解决办法
2207
查看次数

标签 统计

scala ×1