描述
Java URL equals(E e) 方法根据以下条件比较当前 URL 对象与另一个对象是否相等
如果给定对象不是 URL,则返回 false。
如果两个 URL 对象具有相同的协议,引用等效的主机、主机上的相同端口号以及相同的文件和文件片段,则它们相等。
如果两个主机名可以解析为相同的 IP,则两个主机被视为等效地址。
如果任一主机名无法解析,则主机名必须相同,不区分大小写。
两个主机名都等于 null 则返回 true。
由于主机比较需要名称解析,因此该操作是阻塞操作。
声明
以下是java.net.URL.equals(Object obj)方法的声明
public boolean equals(Object obj)
参数
obj - 要比较的 URL 对象。
返回值
如果对象相同则为 true;否则为 false。
异常
无
示例 1
以下示例显示 Java URL equals(Object e) 方法的用法。在此示例中,我们将创建 URL 和 URLConnection 类的实例。现在使用 equals 方法来比较这两个对象。由于是不同类型的对象,结果如预期为 false,并在输出中进行验证,如下所示
package com.yxjc123;
import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;
public class UrlDemo {
public static void main(String [] args) {
try {
URL url = new URL("https://www.yxjc123.com/index.htm?language=en#j2se");
URLConnection urlConnection = url.openConnection();
System.out.println(url.equals(urlConnection));
} catch (IOException e) {
e.printStackTrace();
}
}
}
让我们编译并运行上面的程序,这将产生以下结果
false
示例 2
以下示例显示 Java URL equals(Object e) 方法的用法。在此示例中,我们创建两个具有相同 url 的 URL 类实例。现在使用 equals 方法来比较这两个对象。由于是基于相同 url 的对象,结果符合预期并在输出中进行验证,如下所示
package com.yxjc123;
import java.io.IOException;
import java.net.URL;
public class UrlDemo {
public static void main(String [] args) {
try {
URL url = new URL("https://www.yxjc123.com/index.htm?language=en#j2se");
URL urlToCompare = new URL("https://www.yxjc123.com/index.htm?language=en#j2se");
System.out.println(url.equals(urlToCompare));
} catch (IOException e) {
e.printStackTrace();
}
}
}
让我们编译并运行上面的程序,这将产生以下结果
true
示例 3
以下示例显示 Java URL equals(Object e) 方法的用法。在此示例中,我们创建两个具有相同 url 的 URL 类实例,在另一个实例中,我们还传递主机名和文件名。现在使用 equals 方法来比较这两个对象。由于对象现在不一样,结果与预期一致并在输出中得到验证,如下所示 -
package com.yxjc123;
import java.io.IOException;
import java.net.URL;
public class UrlDemo {
public static void main(String [] args) {
try {
URL url = new URL("https://www.yxjc123.com/index.htm?language=en#j2se");
URL urlToCompare = new URL("https", "https://www.yxjc123.com/index.htm?language=en#j2se","index.htm" );
System.out.println(url.equals(urlToCompare));
} catch (IOException e) {
e.printStackTrace();
}
}
}
让我们编译并运行上面的程序,这将产生以下结果
false