首页 > 基础资料 博客日记

【无标题】Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field ‘c

2024-07-01 16:00:06基础资料围观181

本篇文章分享【无标题】Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field ‘c,对你有帮助的话记得收藏一下,看Java资料网收获更多编程知识


Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field 'c
这个错误信息表明你正在使用Java编译器的内部API,即com.sun.tools.javac.tree.JCTree$JCIrel类,并尝试访问一个不存在的成员字段'c'。

解释:

com.sun.tools.javac.tree.JCTree$JCIrel是Sun/Oracle JDK中Java编译器的内部类,用于表示Java语法树中的关系节点。这个错误通常发生在使用了编译器内部API的代码中,而该API在不同版本的JDK中可能会发生变化,导致代码尝试访问一个在当前JDK版本中不存在的成员。

解决方法:

不要使用内部API。官方不推荐直接使用这些API,因为它们可能在未来的JDK版本中发生变化或者被移除。

如果你需要访问这样的成员,应该寻找公共API的替代方法来实现你的需求。

如果你正在编写一个编译器插件或者修改编译器行为,应该使用Java编译器的插件机制,而不是直接依赖内部API。

如果你的代码是基于旧版本的JDK编写的,考虑将项目升级到最新的JDK版本,并修改任何已经不适用的API调用。

如果你确实需要使用类似的功能,你应该查找官方文档或者社区提供的相关工具和方法来实现你的需求。


项目为jdk1.8,但是项目自动配置成了jdk21,导致无法找到指定成员


文章来源:https://blog.csdn.net/qq_27577113/article/details/138530968
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!

标签:

相关文章

本站推荐

标签云