Hallo,
wie in dem oberen Thread schon gesagt wurde, ist es effektiver, wenn du die Dateiendungen mit dem Trennpunkt im Array speicherst. Dann sieht meine Lösung so aus:
private String[] extension = {".gif", ".jpg", ".png"};
public boolean accept(File f)
{
if (f.isDirectory())
{
return true;
}
// Wozu soll es eigentlich gut sein, hier true zurück zu geben?
String name = f.toString();
for (int i = 0; i < extension.length; i++)
{
if (name.endsWith(extension[i])
{
return true;
}
}
return false;
}
Du kannst dir viele Anweisungen ersparen, wenn du beachtest, dass mit return die jeweilige Methode verlassen wird. Das heißt, dass der nachfolgende Code nicht mehr ausgeführt wird.
Deine Methode ist eine typische statische Methode. Besser ist es also:
public static boolean accept(File f, String[] extension)
Dies solle deine "Haputmethode" sein. Auf diese kannst du dann weitere, ähnliche Methoden aufsetzen. Sinnvoll währen Methoden wie:
private String[] DEFAULT_EXTENSIONS = {".gif", ".jpg", ".png"};
public static boolean accept(File f)
{
return accept(f, DEFAULT_EXTENSIONS);
}
public static boolean accept(String path, String[] extension)
public static boolean accept(String path)
Achte auch schön auf Exceptions. Dadurch wird deine Klasse flexibler und zuverlässiger.
Mit freundlichen Grüßen
Dimitri Rettig
--
Meistens gelangen die Menschen nur durch die Folgen der Unordnung zur Einführung der Ordnung, und Gesetzlosigkeit führt gewöhnlich erst zu Gesetzen.
-- Friedrich Schiller