确实是一件很奇怪的事情。我有以下项目结构:
myproject/one/two
在包里面myproject
我有一个类:
abstract class A (two: Buffer[Int])
然后,在包裹内one
我有:
object B extends A (Buffer[Int](1, 2, 3)) {
val с = two.map(_ + 1) // ERROR
}
但是,错误说:
对象
map
不是包的成员myproject/one/two
这显然是错误的,因为应该非常清楚我在这里不是指包,而是指局部变量......并且two
在 in 之后也没有在 context-assistthis.
中B
显示,但在A
(Scala-IDE)中显示. 这是一种预期的行为,我做错了什么还是一个错误?
更新:
(同时由 Nicolas 建议:D)能够通过指定two
为val
(将其公开)来解决名称冲突。起初我没有注意到,但它是私有的,在后继类中不可用。尽管如此,我仍然想知道,Scala 为什么以及如何拿起一个包而不是说该变量不存在或不可访问?