内部接口这段代码在Java的编译没有错误:实现内性状斯卡拉像我们一样在Java
interface T {
interface Q {
}
}
class C implements T.Q {
}
,而这些代码的Scala没有:
trait T {
trait Q {
}
}
class C extends T.Q {
}
什么是正确的将Java代码列表翻译(如果存在)到Scala中?
欢迎有关语言设计的理论解释。
除了别人已经回答了路径依赖的类型,这也是值得注意的是,Scala的符号来表示Java的'T.Q'是'T#Q'。 – 2013-03-25 14:48:19
Oleg提到的'T#Q'语法被称为[type projection](http://stackoverflow.com/questions/6676048/why-does-one-select-scala-type-members-with-a-hash -instead对的一点)。并且请注意,如果你在从T派生的类型中进行扩展,你可以*扩展Q,例如, 'A类扩展T {B类扩展Q}'。 – AmigoNico 2013-03-27 01:23:58