Can I create a package of my own that has the same name as a predefined package
in Java, such as java.lang?
If so, what would the results be? Wouldn't that enable me to access that package's protected members?
If not, what prevents me from doing so?
No - java.lang is prohibited. The security manager doesn't allow "custom" classes in the java.lang package and there is no way telling him to accept them.
You're right - own classes declared in the java.lang namespace would allow you to use protected methods and members of classes in that package, and this is definitly not wanted.
This compiles fine - but - try to execute it ;)
package java.lang;
public class EvilAsEvilCanBe {
public static void main(String[] args) {
System.out.println("hehe");
}
}
Any package name matching "java.*" is prohibited and a security exception will be thrown.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With