Pytanie

0

Witam

Czy ktoś mi wytłumaczy co ozanczają 2 fragment kodu

private static final Comparator<File> FILE_COMPARATOR = new Comparator<File>() {
public int compare(File f1, File f2) {
if (f1.isDirectory() && !f2.isDirectory()) return -1;
if (!f1.isDirectory() && f2.isDirectory()) return 1;
return f1.getName().toLowerCase().compareTo(f2.getName(). toLowerCase());
}
};

i

private static final FileFilter FILE_FILTER = new FileFilter() {
public boolean accept(File pathname) {
return pathname.isDirectory();

// zmień temat. k

0

Drugi fragment:
Po lewej stronie znaku równości jest deklaracja pola(zmiennej) w pewnej klasie:

private static final

to modyfikatory, pole jest:
private, zatem niewidoczne na zewnatrz klasy
static, zatem mozna z niego korzystać bez konieczności tworzenia obiektó klasy (iwe wszystkich utworzonych obiekachy wartość tego pola jest taka sama)
final, nie może zostać potem zmienione

private static final FileFilter FILE_FILTER

FileFilter to typ pola
FILE_FILTER to nazwa pola
Po prawej stronie jest "przepis" na utworzenie pola: FileFilter jest interfejsem, żeby tworzyć obiekty typu FileFilter trzeba napisać ciało metody boolena accept(File), która decyduje jakie pliki(katalogi) są przepuszczane przez filtr.

return pathname.isDirectory();

oznacza, że przepuszczane są tylko katalogi.

1 użytkowników online, w tym zalogowanych: 0, gości: 1