gpt4 book ai didi

java - 为什么Java源码中的InetAddress.isSiteLocalAddress()总是返回false

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:15:48 25 4
gpt4 key购买 nike

我检查了java.net.InetAddress 类的源文件,发现很少有方法总是返回false。例如

/**
* Utility routine to check if the InetAddress is a site local address.
*
* @return a <code>boolean</code> indicating if the InetAddress is
* a site local address; or false if address is not a site local unicast address.
* @since 1.4
*/
public boolean isSiteLocalAddress() {
return false;
}

我错过了什么吗?为什么我们需要一个总是返回 false 的方法?这个类中所有以'is'开头的方法都是一样的。参见 http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/net/InetAddress.java

最佳答案

InetAddress 有一些子类可以覆盖这些方法并返回有用的结果。

如 Inet4Address:根据 RFC 1918,如果地址是“本地”,则返回 true。有一行注释:

// refer to RFC 1918
// 10/8 prefix
// 172.16/12 prefix
// 192.168/16 prefix

对于 context free 互联网地址(= 不是 IPv4 也不是 IPv6),返回 false 是有意义的,因为本地站点没有存在没有上下文。

关于java - 为什么Java源码中的InetAddress.isSiteLocalAddress()总是返回false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7514293/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com