为什么我能够重新创建java.lang包和类?
我只是在玩包结构。令我惊讶的是,我可以通过创建具有该名称的包和类名来绕过默认类。
例如:
我创建了一个名为 和 类 是 的包。当我导入时,它不是JDK版本的.是我的。它只是显示了每个对象java都有的方法。java.lang
Boolean
java.lang.Boolean
Boolean
Objects
为什么会这样?为什么允许我创建软件包?并且程序运行良好。java.lang
另一个障碍是,如果我创建一个带有名称并尝试运行该程序,则异常Class
Object
java.lang.SecurityException: Prohibited package name: java.lang
at java.lang.ClassLoader.preDefineClass(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
为什么会有这种行为?这是一个错误还是正常行为?