当外部类在Scala中声明为变量时实例化内部类
当我将外部类对象声明为当外部类在Scala中声明为变量时实例化内部类,scala,Scala,当我将外部类对象声明为var时,我无法实例化内部类。但是当我把它作为val时,我没有得到任何错误。为什么会这样 class Outer(name : String ) { ter => class Iner(name : Inner) { println("Printing outer class name : " + ter.name ) println("Printing inner class name : " + name ) } } object Ov
var
时,我无法实例化内部类。但是当我把它作为val
时,我没有得到任何错误。为什么会这样
class Outer(name : String ) { ter =>
class Iner(name : Inner) {
println("Printing outer class name : " + ter.name )
println("Printing inner class name : " + name )
}
}
object OverRiding extends App {
var outr : Outer = new Outer("Priyaranjan Outer")
var inner = new outr.Iner("Priyaranjan Inner")
}
问题在于,在构造函数调用中,引用实例化类的表达式必须是稳定标识符。这是在 如果您查看a的定义,您将看到为什么
outr
必须是val
:
- p、 其中p是路径,x是p的稳定成员。稳定成员是由对象定义或非易失性类型的值定义引入的包或成员
虽然你可以用路径无关的类型输入它,但显然不行。恐怕不符合规格。