Gradle Lombok'推断的类型的复杂性是否有限制;斯瓦尔?

Gradle Lombok'推断的类型的复杂性是否有限制;斯瓦尔?,gradle,lombok,Gradle,Lombok,我有一个使用jOOQ编写的数据访问对象,它返回一个相当复杂的类型签名: Map<Record, Result<Record14<String, Integer, String, String, String, String, String, String, Integer, String, Boolean, Boolean, Integer, Boolean>>> result = create.... 当我在Eclipse中运行/编译时,这一点就起作用了…

我有一个使用jOOQ编写的数据访问对象,它返回一个相当复杂的类型签名:

Map<Record, Result<Record14<String, Integer, String, String, String, String, String, String, Integer, String, Boolean, Boolean, Integer, Boolean>>> result = create....
当我在Eclipse中运行/编译时,这一点就起作用了…当我尝试在Gradle中编译时,我得到:

UpdatesDAO.java:307: error: incompatible types
            .fetchGroups(key);
                        ^
  required: val
  found: Map<Record,Result<Record14<String,Integer,String,String,String,String,String,String,Integer,String,Boolean,Boolean,Integer,Boolean>>>
UpdatesDAO.java:307:错误:类型不兼容
.fetchGroups(键);
^
必填项:val
发现:地图
有人能告诉我为什么它在Gradle中适用于更简单的类型,而不适用于更复杂的类型吗?我在同一个项目中还有其他类似的地方:

val records = dao.getDatastoreById(id); // Returns a type of List<Datastore>
val records=dao.getDatastoreById(id);//返回列表的类型
即使使用Gradle编译,它们也工作得很好。。。我错过什么了吗

仅供参考:Lombok版本=1.14.8,Gradle版本2.2.1

我尝试过lombok==1.14.6,Gradle版本2.2.0


我也尝试过Java 8和Java 7,OpenJDK和Oracle JDK,答案是jOOQ的DSL和lombok之间的冲突。。jOOQ DSL有一个方法“val”,静态导入时会导致冲突:

import static org.jooq.impl.DSL.val;
如果您通过静态导入使用“val”方法,它将破坏lombok的“val”实现。删除静态导入并使用“DSL.val()”为我解决了这个问题


更多信息请访问:

问题:为什么需要14种泛型类型?这是一种比任何东西都重要的代码味道…我想您必须向jOOQ人员以及他们如何进行数据库交互提出这一点。。。不管它是否是一种代码味道,从Eclipse编译时它会工作,而从Gradle编译时它不工作都没有什么意义。@Makoto:通常,这些类型只在jOOQ的fluent API的后台使用,并由编译器推断
import static org.jooq.impl.DSL.val;