У меня есть приложение на Java 8, которое я хочу перенести в Java 11. Сборка Gradle 5.0 содержит зависимость от JFreeChart 1.5.0, а JAVA_HOME установлен на установленный jdk-11.0.1 из Oracle.При построении получить следующий вывод:
> Task :nemclient:compileJava
error: clone() in AbstractXYItemRenderer cannot implement clone() in PublicCloneable
attempting to assign weaker access privileges; was public
Класс AbstractXYItemRenderer предоставляется библиотекой JFreeChart.Есть два вопроса:
- Почему сборка все-таки жалуется?Поскольку я не предполагаю, что Gradle пытается собрать библиотеку (источник библиотеки здесь не указан), что вызывает эту ошибку?
- Анализ исходного кода библиотеки показывает, что класс
AbstractXYItemRenderer
не реализует интерфейс PublicClone
вообще, ни прямо, ни косвенно.
Ошибка исчезает,когда модификатор метода клона изменяется с защищенного на публичный.Но я бы предпочел оставить код без изменений.
Кстати: у того же проекта в Eclipse (с использованием плагина Java 11 и упомянутого jdk-11.0.1) нет проблем компиляции.