private static Stream<File> findFiles( File directory, final Predicate<File> filter ) { File[] listedFiles = directory.listFiles(); if( listedFiles == null ) { return Stream.of(); } return Stream.concat( Stream.of( listedFiles ).filter( filter ), Stream.of( listedFiles ) .filter( File::isDirectory ) .map( dir -> findFiles( dir, filter ) ) .flatMap( Function.identity() ) ); }
private static Stream<File> findFiles( File directory, final Predicate<File> filter ) { File[] listedFiles = directory.listFiles(); if( listedFiles == null ) { return Stream.of(); } return Stream.concat( Stream.of( listedFiles ).filter( filter ), Stream.of( listedFiles ) .filter( File::isDirectory ) .map( dir -> findFiles( dir, filter ) ) .flatMap( Function.identity() ) ); }
Stream<File> classFiles = findFiles( path, candidate -> candidate.getName().endsWith( ".class" ) ); return classFiles .map( classFile ->
Stream<File> classFiles = findFiles( path, candidate -> candidate.getName().endsWith( ".class" ) ); return classFiles .map( classFile ->