Я встретил странную проблему в Intellij Ultimate 2019.3.2. Это указывает на ошибку типа Java generi c, например, «причина: не существует экземпляра (ов) переменных типа (типов), так что OCPerson соответствует IBaseObject», когда я интегрировал jar, который предоставляет метод generi c в мой текущий проект, но проект может быть скомпилирован без каких-либо ошибок или предупреждений в Oracle JDK 8. Более странно, когда я напрямую использую метод generi c в качестве исходного кода, Intellij больше не вызывает ошибку. Пожалуйста, смотрите подробную информацию ниже:
Сигнатура метода generi c выглядит следующим образом:
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.