У меня есть следующий сценарий:
URL u1 = new URL("http://www.yahoo.com/");
URL u2 = new URL("http://www.yahoo.com");
if (u1.equals(u2)) {
System.out.println("yes");
}
if (u1.toURI().equals(u2.toURI())) {
System.out.println("uri equality");
}
if (u1.toExternalForm().equals(u2.toExternalForm())) {
System.out.println("external form equality");
}
if (u1.toURI().normalize().equals(u2.toURI().normalize())) {
System.out.println("uri normalized equality");
}
Ни одна из этих проверок не выполняется. Только путь отличается: u1 имеет путь "/", а u2 имеет путь к "". Являются ли эти URL-адреса, указывающие на один и тот же ресурс, и есть ли способ проверить такую вещь, не открывая соединение? Я неправильно понимаю что-то фундаментальное в отношении URL-адресов?
РЕДАКТИРОВАТЬ. Я должен указать, что требуется нехитрый чек. Можно ли сказать, что пустой путь ==/? Я надеялся не иметь такой код