关于受保护的[some_scope]和scala中的继承的工作的混淆
这个问题是关于scala的保护范围。以下代码运行完美。
//In firstfile.scala
package A{
class test{
protected[test] var a=0
}
}
package B{
class test1 extends A.test{
println(a)
}
}
但是当我将包 B 放入其他文件中时,编译失败并提示未找到值 a
// In secondfile.scala
import A.test
package B{
class test1 extends test{
println(a)
}
}
我正在 intellij 中运行此代码。 这可能是什么原因?这两个代码不是一样的吗?
This question is about protected scope of scala. Following code runs perfectly.
//In firstfile.scala
package A{
class test{
protected[test] var a=0
}
}
package B{
class test1 extends A.test{
println(a)
}
}
But when I put package B in some other file,then compilation fails saying not found value a
// In secondfile.scala
import A.test
package B{
class test1 extends test{
println(a)
}
}
I am running this code in intellij.
what can be the reason of this? Are not the two codes same?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我想你已经发现了一个错误。我可以使用 Scala IDE
2.0.0-beta9 和 Scala 2.9.0-1
在 Eclipse 中重现它。首先,让我们创建 Foo.scala:,然后创建 Bar.scala:
Eclipse 告诉我们,有一个错误。但是清理项目后这个错误就消失了。我用 scalac 进行了检查,第一次尝试就可以编译所有内容(谁会怀疑)。
更新:
我已经开票 #1000567 。
I think you've found a bug. I can reproduce it in Eclipse with Scala IDE
2.0.0-beta9 with Scala 2.9.0-1
. First, let's create Foo.scala:and then Bar.scala:
Eclipse telling us, there is an error. But after cleaning a project this error disappears. And I checked, with
scalac
everything compiles with first attempt (who would doubt).Update:
I've opened a ticket #1000567 on Scala IDE bugtracker regarding this issue.