Проблема заключается в том, что приведение является проверкой времени выполнения - но из-за стирания типа во время выполнения нет никакой разницы между HashMap<String,String>
и HashMap<Foo,Bar>
для любых других Foo
и Bar
.
Используйте @SuppressWarnings("unchecked")
и держите нос. О, и кампания для реинфицированных дженериков в Java:)
В проекте Maven один и тот же модуль содержит как корни источника, так и корни тестового источника. В проекте Gradle IDE создает отдельные модули для наборов источников, поэтому источники и тестовые источники будут находиться в разных модулях.
Вы можете отключить опцию Создать отдельный модуль для набора источников и повторно импортировать проект:
Когда я просто разархивировал Gradle в папку, установил GRADLE_HOME и добавил его в свой путь, у меня были всевозможные проблемы с IntelliJ, не зная, что нужно восстановить. Некоторым помогло удаление выходного каталога IntelliJ .
Затем, однажды, обновили IDEA до:
IntelliJ IDEA 2019.1 (Ultimate Edition)
Build #IU-191.6183.87, built on March 27, 2019
JRE: 1.8.0_202-release-1483-b39 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Linux 4.15.0-47-generic
Затем я установил Gradle, используя SDKMAN! в соответствии с инструкциями Gradle , и повторно импортировал проект в ИДЕЮ. Эта проблема и все другие мои проблемы со сборкой исчезли. Что из этого действительно решило мою проблему? Я не знаю.