Тип "com.sun.tools.javac.util.Assert" недоступен
Не могли бы вы помочь мне понять, почему этот тип недоступен?
Версии:
Eclips / Photon Release (4.8.0)
Селен-Java-3.14.0
JavaSE-10
1 ответ
Вы не должны использовать это Assert
класс в вашем коде. Он является внутренним для компилятора Java и не предназначен для повторного использования.
В течение многих лет в документации Sun / Oracle были предупреждения о том, что код пользователя не должен зависеть от внутреннего com.sun.*
API-интерфейсы. Начиная с Java 9, доступ к этим и другим внутренним API-интерфейсам был закрыт системой модулей. Можно разрешить доступ... но нельзя, если у вас есть альтернатива.
- Эти API недокументированы и могут быть отозваны без предварительного уведомления, что приведет к проблемам с переносимостью при обновлении JVM до более новой версии.
- Некоторые реализации Java не реализуют эти API, что приводит к проблемам переносимости, когда вы пытаетесь использовать JVM от другого поставщика.
Держу пари, что вы должны использовать Assert
из API-интерфейсов JUnit, и что вы выбрали поддельные import
приняв (неправильное) автокоррекцию, предложенную вашей IDE.
Лучшее решение - изменить ваш код для использования org.junit.Assert
или что-то эквивалентное.