2017-08-24 5 views

Antwort

1

Was ist mit ...

FileFilter combinedFilter = f -> wildcardFileFilter.accept(f) && isFileFileFilter.accept(f); 

Wenn Sie es fließend wollen, dann denken Sie daran, dass ein FileFilter ist im Wesentlichen ein Predicate<File>, die einige Methoden bietet Sachen zu kombinieren ...

Predicate<File> wildcardFileFilter = new WildcardFileFilter("*.jml")::accept; 
Predicate<File> isFileFileFilter = FileFileFilter.FILE::accept; 

FileFilter combinedFilter = wildcardFileFilter.and(isFileFileFilter)::test; 
+0

Scheint funktioniert, aber ich denke an eine elegantere fließende Builder-Lösung oder ähnliches, wenn vorhanden. –

+0

Eine hinzugefügt, aber ehrlich gesagt, ich sehe den Punkt nicht. Sie könnten natürlich so etwas speziell für FileFilter erstellen, aber wofür? Wäre einfach genug, um die Schnittstelle zu erweitern, um einige flüssige Standardmethoden hinzuzufügen, zum Beispiel 'MyFileFilter.and (...)', aber ich bezweifle, dass es viel Klarheit hinzufügen wird. –

+0

Danke, es ist schlau und hat viel geholfen, ich warte auch auf andere Antworten. –

Verwandte Themen