scala中嵌套对象的类型是什么
发布时间:2020-12-16 09:03:22 所属栏目:安全 来源:网络整理
导读:我试图弄清楚如何创建一个将嵌套对象作为参数的方法.对于嵌套类,我可以执行以下操作: scala class Outer { | class Inner | def method(i:Outer#Inner) = { "inner class" } | }defined class Outer 但是,如果我用对象尝试类似的东西,我会收到一个错误: sc
我试图弄清楚如何创建一个将嵌套对象作为参数的方法.对于嵌套类,我可以执行以下操作:
scala> class Outer { | class Inner | def method(i:Outer#Inner) = { "inner class" } | } defined class Outer 但是,如果我用对象尝试类似的东西,我会收到一个错误: scala> class Outer { | object Inner | def method(i:Outer#Inner) = { "inner object" } | } <console>:11: error: type Inner is not a member of Outer def method(i:Outer#Inner) = { "inner object" } 该方法的参数类型应该如何实现?另外我想引用Inner对象的类型而不是将参数概括为Any. 解决方法
Inneris是一个对象,因此它不是一个类型,也不能用作一个类型. Inner的类型是Inner.type.在你的例子中,这意味着.不幸的是,Outer的每个实例都有它自己的Inner对象,并且不能使用类型Outer#Inner.type,因为它不稳定.解决方法是使用:this.Inner.type.
def method(i:this.Inner.type) = { "inner object" } 但这意味着您只能将您调用方法的实例的Inner对象作为参数传递. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |