Тип "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 или что-то эквивалентное.

Другие вопросы по тегам