Eclipse JDT AST Parser不解析Java lambda Expression中的类型

时间:2016-09-12 14:39:03

标签: java lambda eclipse-jdt

我正在使用Eclipse JDT AST Parser(3.10.0)来解析各种源代码文件。

这就是我如何初学解析器:

ASTParser parser = ASTParser.newParser(AST.JLS8);
parser.setKind(ASTParser.K_COMPILATION_UNIT);
parser.setBindingsRecovery(true);
parser.setResolveBindings(true);
parser.setStatementsRecovery(true);
parser.setSource(source.toCharArray());
parser.setUnitName(filename);
parser.setEnvironment(classPath.toArray(new String[classPath.size()]), sources, new String[]{"UTF-8"}, true);
final CompilationUnit cu = (CompilationUnit) parser.createAST(null);

类路径由maven依赖插件创建。

这对大多数表达式都有效,但似乎有lambda表达式的问题

Optional<Address> first = adr.stream().filter(
    a -> a.getId().longValue() == contactAddress.getAddressId().longValue()
).findFirst();

评估比较的两面,每种类型都解析为null。在没有周围lambda表达式的情况下解析相同的代码会导致每边long

有没有办法解决lambda表达式中的bindng?

0 个答案:

没有答案