更改 Scala 默认类访问修饰符

Posted

技术标签:

【中文标题】更改 Scala 默认类访问修饰符【英文标题】:Change Scala default class access modifier 【发布时间】:2017-02-19 22:05:11 【问题描述】:

假设我有一堆 Scala 类,我想将其编译并打包成 JAR。

我只想向 JAR 的外部用户公开有限数量的类并“隐藏”任何其他类。

问题:如何在不显式指定要隐藏的类的 private 访问修饰符的情况下实现这一目标?

问题是Scala中的类默认是public的。

理想的解决方案是一些 Scala 编译器选项,将默认类修饰符更改为 private

【问题讨论】:

我很确定这是不可能的,但是您可以通过编译器插件进行更改以实现此目的。 scala-lang.org/old/node/140 但是,老实说,我不完全确定这可以被认为是一种好的做法;我建议您考虑简单地使用 private 关键字,以便您的代码更便携,更容易被不熟悉的人推理。 我想不出任何具有等效访问修饰符的语言,它允许您使用编译器选项更改默认值。 【参考方案1】:

我想你回答了你自己的问题。 Scala 为这个用例提供了private

【讨论】:

以上是关于更改 Scala 默认类访问修饰符的主要内容,如果未能解决你的问题,请参考以下文章

在Java和c#中如果不写访问修饰符,类和类成员默认的是啥访问修饰符?

在Java和c#中如果不写访问修饰符,类和类成员默认的是啥访问修饰符?

Java中成员属性默认访问修饰符是啥

java访问修饰符

Java访问修饰符

java类中的成员缺省(默认的)的修饰符是啥??