尝试编写使用菱形运算符的规则的结果。获取以下错误消息。 java.version系统属性设置为1.7,JavaDialectConfiguration类的语言级别为1.7,仍然为什么drools无法编译菱形运算符?
Incorrect number of arguments for type HashMap<K,V>; it cannot be parameterized with arguments <?>
示例规则:
package rule.test;
import java.util.Map;
import java.util.HashMap;
dialect "java"
rule "Test jdk 7"
when
then
Map<String, String> params= new HashMap<>();
end
答案 0 :(得分:0)
drools 5.4.0.Final或5.5.0.Final的编译器maven工件正在拉动3.5.1版本的eclipse核心编译器。
<groupId>org.eclipse.jdt.core.compiler</groupId>
<artifactId>ecj</artifactId>
<version>3.5.1</version>
当我将最新版本的JDT编译器放入我的pom时,问题就会得到解决。
<dependency>
<groupId>org.eclipse.jdt.core.compiler</groupId>
<artifactId>ecj</artifactId>
<version>4.2.2</version>
<scope>runtime</scope>
</dependency>