import java.util.List; public class JavaTest { class MethodDeclaration { public <T> List<T> getNodesByType(Class<T> clazz) { return new ArrayList<T>(); } } class JavaParserFacade { public Solved solve(MethodDeclaration method) { return new Solved(); } } class Solved { public boolean isSolved() { return true; } } private List<String> foo(MethodDeclaration methodDecl) { return methodDecl .getNodesByType(MethodDeclaration.class) .stream() .map(statement -> { try { return new JavaParserFacade().solve(statement); } catch (Throwable e) { return null; } }) .filter(parsed -> parsed != null && parsed.isSolved()); } }