我正在尝试实现一个基于 HashMap 的树,该树支持给定根键的 O(1) 子树查找。为了这个目标,我正在努力做到以下几点:
scala> type Q = HashMap[Char, Q]
<console>:6: error: illegal cyclic reference involving type Q
type Q = HashMap[Char, Q]
^
所以问题是,有没有办法让我在不诉诸丑陋的情况下做类似的事情
HashMap[Char, Any]
随后将值转换为 HashMap[Char, Any]
?现在,我也看到我可以使用类似下面的东西来避免循环引用错误,它甚至可能更干净——但最好找出如何以第一种方式正确地做到这一点,只是为了教育值(value)。
import collections.mutable.HashMap
class LTree {
val children = new HashMap[Char, LTree]
}
谢谢一堆。
最佳答案
我可能没有“明白”这个问题,但是呢
class L {
type Q = java.util.HashMap[Char, this.type]
}
或者
class Q extends java.util.HashMap[Char, Q]
关于Scala:解决 "illegal cyclic reference",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2732454/