我在Intellij Ultimate 2019.3.2中遇到了一个奇怪的问题。当我集成了一个在当前项目中提供通用方法的jar时,它表示Java通用类型错误,例如“原因:不存在类型变量的实例,因此OCPerson符合IBaseObject”。可以在Oracle JDK 8中进行编译而没有任何错误或警告。更奇怪的是,当我直接将通用方法用作源代码时,Intellij不再提升该错误。请在下面查看详细信息:
通用方法签名如下所示:
public static <T extends IBaseObject> void setEntityNameForMapObject(Map map, String key, Class<T> entityClass)
我将其构建为单个jar库。当我在项目中使用此jar时,Intellij指示以下错误信息。实际上,Gradle可以正确编译项目,并且没有任何警告消息。顺便说一句,Intellij使用JDK 1.8.0_152。当我在当前项目中复制源代码时,Intellij中消失了指示的错误消息。