我检查了我的java开发包中的代码InetAddress
类文件,我看到以下几行。
行号:302 - 308
/**
* Constructor for the Socket.accept() method.
* This creates an empty InetAddress, which is filled in by
* the accept() method. This InetAddress, however, is not
* put in the address cache, since it is not created by name.
*/
InetAddress() {
holder = new InetAddressHolder();
}
在上面的代码中,我可以看到InetAddress
类修饰符是default
而不是private
然后我们也无法使用新方法创建InetAddress
类的对象。喜欢以下
InetAddress addr = new InetAddress();
答案 0 :(得分:1)
你可以....但你不应该......
记住友好意味着能见度概念...
如果您因遗漏,疏忽或错误而定义名称为 java.net;
的软件包然后是以下
InetAddress v = new InetAddress();
将有效..
再次...... 不是你不能做的......是你不应该做的事情!
所以最好永远不要用sdk包名定义你自己的包,否则你会得到 像
这样的例外情况java.lang.SecurityException:禁止的包名:java.net