无法访问“ com.sun.tools.javac.util.Assert”类型

时间:2018-11-13 11:54:03

标签: java

能否请您帮助我了解为什么无法访问此类型?

版本:

Eclips / Photon版本(4.8.0)

selenium-java-3.14.0

JavaSE-10

screenshot

1 个答案:

答案 0 :(得分:3)

您不应在代码中使用该Assert类。它在Java编译器内部,不打算重用。

多年来,Sun / Oracle文档中一直警告说,用户代码不应依赖于内部com.sun.* API。从Java 9开始,模块系统已关闭对这些API和其他内部API的访问。可以允许访问...但是如果有其他选择,则不应该。

  • 这些API没有文档说明,可能在没有任何通知的情况下被撤回,从而在将JVM升级到较新版本时引起可移植性问题。
  • 某些Java实现未实现这些API,因此当您尝试使用其他供应商的JVM时会导致可移植性问题。

我敢打赌,您应该使用JUnit API中的Assert,并且您已经接受了(不正确的)自动校正,从而冒充了虚假的import由您的IDE建议。

最好的解决方案是将您的代码更改为使用org.junit.Assert或类似名称。