Non so voi ragazzi, ma almeno mi aspettavo che f1 sarebbe stato uguale a f2 nel codice sottostante ma apparentemente non è il caso! Cosa ne pensi di questo? Sembra che devo scrivere il mio metodo di equità per supportarlo, giusto?Il file Java è uguale a
import java.io.*;
public class FileEquals
{
public static void main(String[] args)
{
File f1 = new File("./hello.txt");
File f2 = new File("hello.txt");
System.out.println("f1: " + f1.getName());
System.out.println("f2: " + f2.getName());
System.out.println("f1.equals(f2) returns " + f1.equals(f2));
System.out.println("f1.compareTo(f2) returns " + f1.compareTo(f2));
}
}
Lo stesso accade con la classe Path di Java 7. Ma esistono metodi come Path.normalize() o Files.isSameFile() – Luciano
Si potrebbe tranquillamente proteggere tutti i visualizzatori di questa domanda mostrando l'output effettivo. Mi aspettavo che 'equals' e' compareTo' avessero risultati contraddittori. Questo non è il caso, 'equals' restituisce false e' compareTo' restituisce -58, che significa lessicograficamente "minore di". @Luciano: Si noti che 'Files.isSameFile' in questo caso proverebbe ad aprire i file poiché i percorsi non sono uguali e potrebbero fallire con' NoSuchFileException'. – bluenote10