gpt4 book ai didi

java - 是什么阻止您在包中声明其他类,从而使您无法访问包私有(private)成员

转载 作者:行者123 更新时间:2023-12-01 17:53:30 25 4
gpt4 key购买 nike

如果我在包 com/a/b/c 中创建一个名为 MyClassA 的项目

定义如下:

public class MyClassA {
public static void main(String[] args) {

}

String sayHi() {
return "hi";
}
}

如果我将此项目导出为 jar 并在包 com/a/b/c 中创建另一个名为 MyCassA 的项目,并导入我之前导出的 jar,会发生什么不允许我看到受包保护的方法 sayHi()

我通过删除我导出为 jar 的第一个项目来尝试此操作。当我尝试这个时,我收到一个编译错误,指出该方法不可见。

最佳答案

告诉您没有什么可以阻止它的答案是错误的。

您可以seal你的包裹。密封包是一种可以在一个且仅一个 .jar 文件中定义的包。 Java 运行时将拒绝该包中在该 .jar 文件之外定义的任何类。

密封包装很简单。在包含 .jar 文件的 list 中,为该包添加一个部分,并包含 Sealed: true 属性:

Name: com/a/b/c
Sealed: true

关于java - 是什么阻止您在包中声明其他类,从而使您无法访问包私有(private)成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47456674/

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