“私人包裹”是什么意思?
请看样品:
private package com.xm.aws; import static com.xml.aws.PcgTest.test; public class PackageTest { public static void main(String[] args) { test(args); } }
private
告诉我有关包裹的内容是什么?
我们不要将它与可以添加到类,方法和字段中的package-private或其他访问修饰符混淆。
Java语言规范明确指出:
6.6.1。 确定可访问性
- 始终可以访问包。
看一下,我想到的唯一答案是,(某些)编译器不会将此视为编译时错误,而是完全没有意义。 不可能以这种方式限制对类或包的可访问性(并且每个包都始终可访问)。
java语言规范的另一部分:
7.4.1。 命名包
编译单元中的包声明指定编译单元所属的包的名称(第6.2节)。
PackageDeclaration:
注释opt package PackageName;
因此关键字可以在注释之前。 但是访问修饰符不是包声明的一部分。 即使我们扩展“注释”,我们也不会在这里找到访问修饰符。
根据JLS 18的另一个引用。语法 package
唯一允许的是Annotation
。
CompilationUnit:
[[Annotations]包QualifiedIdentifier;]
{ImportDeclaration} {TypeDeclaration}
您提供的代码示例在java中无效。 private
访问修饰符可以应用于成员和方法,包括内部类。 您的代码在Eclipse中编译,但被Oracle自己的编译器拒绝。
实际上,Eclipse为这个java代码生成的字节代码与或不使用private
关键字完全相同 。 这表明这可能是一个Eclipse错误,它会在编译期间忽略word package
之前的文本。
您可能阅读或听到的是“package-private”这一短语,这意味着包之外的任何内容都无法访问该类或成员。 您可以通过不在类本身上使用任何访问修饰符来完成此操作。 不是在包上使用private
关键字。
如果在包名称之前添加private,则这将是编译器错误
尽管package不是使用private关键字实现的最高级别的Java封装,但它仍然是第二个最佳选择,必须封装整个function而不仅仅是一个类。
简而言之, Access修饰符不是包声明的一部分
请参阅此链接
在我看来它只是发生在日食中。 当我通过命令提示符通过javac命令编译代码时,我得到这个编译时错误:
错误:期望的类,接口或枚举
看看这里的post,看起来像eclipse使用自己的jdk:
如果我有eclipse,是否需要安装java sdk
写“私人包”和“包”是一样的。 它们识别相同的访问级别(dafault)。
private修饰符指定只能在自己的包中访问该成员(与protected一样)。
- 常春藤似乎只能获取javadocjar子
- Java是否有’@’字符来转义字符串引号?
- Java – getClassLoader()。getResource()驱使我疯狂
- 找不到类型的响应对象的MessageBodyWriter:java.util.Array媒体类型列表:text / html – in Resteasy
- 打印2D ArrayList Matrix的值
- 在Java Mail API中将“消息成功传递”到错误的邮件地址
- Spring Data JPA – 在没有@Transactional的情况下获取了Lazy Loaded集合
- 构建随机排列列表的最有效方法
- 考虑将序列化的java对象存储为cassandra作为JSON。 捕获量是多少?