gpt4 book ai didi

scala - 如何在 Scala 中定义包私有(private) *trait*?

转载 作者:行者123 更新时间:2023-12-03 23:25:05 24 4
gpt4 key购买 nike

在 Java 中,可以创建包私有(private)接口(interface)。用 javap 查看它们,您会发现它们缺乏“公共(public)”可见性。

在 Scala 中,您可以将 trait 声明为 private[package] 或 protected[package],但使用 javap 查看它仍然是公共(public)的。

那么如何在 Scala 中创建包私有(private)特征呢?

虽然 Scala 编译器尊重可见性,但我的问题是我的 API 也可能会从 Java 访问,我不想将我的内部实现暴露给 Java。

最佳答案

我相信这是您问题的答案

http://www.scala-lang.org/node/10488

private has a subtly special status in the language specs of both Scala and Java. Check out the discussion of private vs qualified private in the Modifiers section of the SLS. In short, private is the same as Java private, whereas private[foo] is not marked private in the bytecode, but simply involves a compile-time access check.



我不相信一旦将特征包编译成字节码,您就不能真正将其设为私有(private)。

关于scala - 如何在 Scala 中定义包私有(private) *trait*?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7167343/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com