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

什么是Scala 2.8中的嵌套/不需要的包?

发布时间:2020-12-16 09:43:03 所属栏目:安全 来源:网络整理
导读:在Scala 2.7中,我可以写: package com.acme.barclass Bar 。 package com.acme.fooclass Foo { new bar.Bar} 这不会在Scala 2.8中编译 – 但是这样做: package com.acme package barclass Bar 。 package com.acmepackage fooclass Foo { new bar.Bar} 这
在Scala 2.7中,我可以写:

package com.acme.bar

class Bar

package com.acme.foo

class Foo {
  new bar.Bar
}

这不会在Scala 2.8中编译 – 但是这样做:

package com.acme 
package bar

class Bar

package com.acme
package foo

class Foo {
  new bar.Bar
}

>这是什么动机?
>关于范围和知名度的具体含义是什么?
>我应该何时使用一种表格?

解决方法

关于这个邮件列表有几个长时间的讨论。
见 this thread for the problem和 this thread for the solution。

至于意思,只有

package A
package B

窗体将打开A的范围,这使得A的成员没有前缀可见。如果您的项目由几个指向彼此的子包组成,您通常会使用此表单。另一方面,您将使用该表单

package A.B.C

如果要将C集成到包层次结构中,并且不打算直接访问A或B的其他成员。典型的情况是

package net.myorg.myproject

在这里,你不想容易受到其他人定义的可能性的影响net.java包将影响根级java。在Scala 2.7中,您可以通过使用_root_导入来阻止它。但这很丑,要安全,几乎到处都要这样做。所以现在的解决方案好多了,海事组织。

(编辑:李大同)

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

    推荐文章
      热点阅读