Некоторая внешняя функция дает мне экземпляр java.io.File, но я хотел бы изменить поведение по умолчанию для compareTo для этого экземпляра на лету. Какой лучший подход?
Единственное, о чем я могу думать, это обернуть этот экземпляр File в
public class FileWrapper extends File{
FileWrapper(File in){
//Assign var to the global var
}
@Overrides
public compareTo(File in){ return whatever;}
}
И сделать так, чтобы все методы переопределяли методы File и перенаправляли вызовы глобальному обернутому экземпляру, пропущенному через конструктор, но это очень уродливо...
Может быть, я забыл какой-то другой более простой способ...
compareTo
должен быть коммутативным:File.compareTo(FileWrapper)
должен быть симметричным сFileWrapper.compareTo(File)
, но вы не можете контролироватьFile.compareTo(FileWrapper)
. - person Louis Wasserman   schedule 31.05.2012