我正在构建一个监听器,将所有java方法调用A.Foo(args)转换为A.Bar(args)。在我看来,规则是:
expression '.' explicitGenericInvocation
听听最合适的规则。但是,在目视检查树之后,我意识到所有java方法调用都被识别为规则
expression '(' expressionList? ')'
而表达术语与
进一步匹配expression '.' Identifier
表达式规则似乎始终覆盖explicitGenericInvocation规则。这是有意还是java语法中存在缺陷?如果是这样的话,那么规则explicitGenericInvocation的正确解释是什么?
答案 0 :(得分:1)
explicitGenericInvocation必须以nonWildcardTypeArguments开头,即< ...>。因此,a.Foo(args)与通用规则匹配,而不是泛型类型的专用规则。