加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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对象作为参数传递.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读