我可以创建一个自定义的java.*包吗?

Ibr*_*jar 4 java packages

我可以创建一个与
Java中的预定义包具有相同名称的自己的包,例如java.lang

如果是这样,结果会是什么?这不是能让我访问该软件包的受保护成员吗?

如果没有,是什么阻止我这样做?

And*_*s_D 7

不 - java.lang被禁止.安全管理器不允许java.lang包中的"自定义"类,也没有办法告诉他接受它们.

你是对的 - 在java.lang命名空间中声明的自己的类允许你protected在该包中使用类的方法和成员,这绝对不是必需的.


编译很好 - 但是 - 尝试执行它;)

package java.lang;

public class EvilAsEvilCanBe {

    public static void main(String[] args) {
        System.out.println("hehe");
    }

}
Run Code Online (Sandbox Code Playgroud)

  • 我刚刚给java.lang作为示例包?而你说安全经理会阻止它.但这是否意味着我可以做到这一点,例如第三方包没有安全经理或某种许可? (2认同)
  • 不总是.试想一下图书馆及其单元测试.测试保存在一个单独的jar中,测试类在相同的包中声明.这允许测试包私有函数.很有用. (2认同)