java - Java 定义了一个显式的包私有修饰符
问题描述
显然,Java 有一个访问级别的包私有,它通过不添加任何显式修饰符来实现。
但是没有办法显式添加这个修饰符吗?当我们只想在包中使用成员时,我们需要省略访问级别,这有点令人困惑。
如果没有办法,为什么 package private 决定成为默认级别?
例如,如果默认级别是公开的,我们会更有意识地定义相关的访问级别。
这不是为什么使用它的问题的重复,因为我知道为什么,我只是不知道为什么它是隐式定义而不能显式定义的。
编辑
您可以使用 Lombok 的@PackagePrivate显式定义它
用于指示注释实体具有包私有访问级别的明确意图。当前由 FieldDefaults 和 Value 使用,以避免使其成为公共、受保护或私有的字段之一。
@PackagePrivate String thanksLombok;
解决方案
但是没有办法显式添加这个修饰符吗?
不,没有。(没有修改 Java 语言,这样的事情不太可能发生。)
您的问题的其余部分要求基于意见的答案1并且是题外话。
1 - 1) 大约 25 年前,当我们做出设计决定时,我们不在房间里。2)没有(AFAIK)原始语言设计决策的现有公开文档。3)即使我们可以问他们,房间里的人也可能大部分都忘记了。4)你/我对“逆向工程”原始想法的任何尝试都会被大约 25 年的事后诸葛亮。
推荐阅读
- php - PHP elseif 不起作用。(将运算符与整数进行比较)
- amazon-web-services - 为 AWS S3 存储桶设置用户权限
- python - 高性能插入或更新 SQLALCHEMY python
- xamarin.android - 将应用程序更新到 API29 后的 md5/crc64 问题
- express - How can I make Sendgrid send the confirmation email?
- angular - 如何计算其他用户的帖子数量?
- sql - 将来自同一个表的 2 个 SQL 查询合并为单个输出
- javascript - 如何在客户端合并两个音频文件。(甚至可能是服务器端)
- node.js - Nodejs API architecture cron job
- intellij-plugin - IntelliJ 插件中具有标准 PsiElement 自动完成的文本字段