首页 > 解决方案 > “com.sun.tools.javac.util.Assert”类型不可访问

问题描述

你能帮我理解为什么这种类型不可访问吗?

版本:

食/光子释放 (4.8.0)

selenium-java-3.14.0

JavaSE-10

截屏

标签: java

解决方案


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

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

  • 这些 API 没有文档记录,可能会在没有任何通知的情况下撤回,从而在您将 JVM 升级到较新版本时导致可移植性问题。
  • 一些 Java 实现没有实现这些 API,当您尝试使用来自不同供应商的 JVM 时会导致可移植性问题。

我敢打赌,您应该Assert从 JUnit API 中使用,并且您已经import通过接受 IDE 建议的(不正确的)自动更正来识别虚假内容。

最好的解决方案是更改您的代码以使用org.junit.Assert或等效的东西。


推荐阅读