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