java - 何时在 java 中使用 package-private(无显式修饰符)?

标签 java class-visibility

我一直在阅读教程Controlling Access to Members of a Class 。我很困惑使用 package-private 的良好用例是什么。因为据我了解,您始终可以将包声明更改为此类类的任何包声明,并充当公共(public)类。我知道这不是一件好事,但是什么阻止了我?

最佳答案

Because as I understand, you can always change your package declaration to whatever the package declaration of such a class and act as if that is a public class

嗯,一方面,访问修饰符可以帮助开发人员。总有办法解决它们,例如 via reflection例如。

I understand that this is not a good thing to do, but what is stopping me?

真的不多!

作为开发人员,您可以在密封的 .jar 文件中分发您的类,这基本上意味着您不会让其他任何人进入您的包。

来自Sealing Packages within a JAR File

Sealing Packages within a JAR File

Packages within JAR files can be optionally sealed, which means that all classes defined in that package must be archived in the same JAR file. You might want to seal a package, for example, to ensure version consistency among the classes in your software.

关于java - 何时在 java 中使用 package-private(无显式修饰符)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11030546/

相关文章:

java - 如何在 xml 标记之间提取多语言字符串

java - ByteBuffer 和部分写入

java - 如何设置 GWT DataGrid 滚动条的样式

Kotlin:如何处理 'protected' 属性暴露其内部返回类型

C++访问嵌套类的私有(private)成员

Java 接口(interface)的可见性降低,只是没有

java - java中如何将24字节bcd转换为ascii?

java - 通过JavaFx表格单元格编辑动态更改SQL数据库的方法

c# - 公开课 - "is inaccessible due to its protection level. Only public types can be processed."

f# - FS0074 : The type referenced through 'C.CRecord' is defined in an assembly that is not referenced. 您必须添加对程序集 'C' 的引用