为什么 InetAddress
、Inet4Address
和 Inet6Address
类没有可见的构造函数?
最佳答案
因为它是一个工厂类。当您希望创建此类对象的情况很少时,使用静态方法返回工厂实例是有意义的。
因此,与其将构造函数重载到您必须记住用于每种给定情况的各种奇怪的参数组合的地步,它只为您提供每种情况的一个(希望命名正确的)方法。
在这种情况下,您可以使用以下之一创建一个对象:
getLocalHost()
,获取自己的地址;getByName()
,获取站点的“主要”地址;或getAllByName()
,获取地址列表。
这不是一个详尽的列表,请参阅 here有关更多信息,请在该页面上搜索:
Methods in java.net that return InetAddress
关于java - 为什么 Inet*Address 类没有可见的构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8470384/