0
我写一个程序来检查一个给定的IP地址是否是任何本地地址或不作为:InetAddress对象在调用isAnyLocalAddress()时如何返回true?
import java.net.*;
class GetByName
{
public static void main(String[] args) throws Exception
{
byte[] b = {0, 0, 0, 0};
String s = "abc";
InetAddress in = InetAddress.getByAddress(b);
boolean b1 = in.isAnyLocalAddress();
System.out.println(in);
System.out.println(b1);
}
}
,输出是:
/0.0.0.0
true
是的,看着挺正常的。但是当我在InetAddress.java中看到isAnyLocalAddress()的实现时,我感到震惊。
public boolean isAnyLocalAddress() {
return false;
}
意味着无论如何该方法必须返回false。那么这个方法在我的程序中如何返回true?
它在子类中被覆盖。 – tkausl
@tkausl但对象是InetAddress类型,而不是Inet4Address .. –
Are you sure? https://ideone.com/sinGV7 – tkausl