Java 中的注释会导致编译时传递依赖吗?

2024-03-17

一个简单的例子,其中Ent.java使用注释并使用必要的 jar 依赖项进行编译,然后Includer.java编译后又导入Ent.java.

ent.java:

import javax.persistence.Entity;
import javax.persistence.Table;

@Entity
@Table(name="securities")
public class Ent {}

包含程序.java:

public class Includer {

    public void f() {
        Ent s = new Ent();
    }
}

编译这个...

javac -cp C:/apache-tomcat-7.0.59/lib/javax.persistence_2.1.0.v201304241213.jar Ent.java
javac Includer.java

...编译时会出现以下警告Includer.java:

.\Ent.class: warning: Cannot find annotation method 'name()' in type 'Table': class file for javax.persistence.Table not found

当然,如果我们添加更多注释,也会发生同样的情况,但只有带参数的注释似乎才会导致这种行为。编译时将第一次编译时的jar依赖添加到classpath中Includer.java解决了问题,但不遵循我通常认为的依赖关系的处理方式。由于我对注释很陌生,我们需要添加以下依赖项是预期的行为吗?Ent.java编译时添加到类路径中Includer.java(可以这么说,添加依赖项的依赖项...)或者这可能是某种错误或其他某种特殊情况...?本测试使用编译器版本 javac 1.8.0_31。


这似乎与这个错误:JDK-6550655 http://bugs.java.com/view_bug.do?bug_id=6550655:

单独编译依赖于另一个类的类时出现编译器错误,该类已编译且依赖于 persistence-api.jar 中的类

另请参阅相关错误JDK-6365854:针对带注释的类进行编译时 javac 崩溃 http://bugs.java.com/view_bug.do?bug_id=6365854.

要回答您的问题,不需要放置依赖类的依赖项(Ent.java) 到依赖类的类路径 (Includer.java)。然而,似乎javac还读取依赖类中的注释。根据引用的错误,这曾经导致编译失败(acom.sun.tools.javac.code.Symbol$CompletionFailure)。正如评论中提到的,这被修改为仅抛出警告:

修复后,编译器将接受该程序,但会发出 一个警告。理由是缺少注释可能会导致 运行程序时出现问题。

还来自评论:

编译器不应该崩溃,这个问题将首先得到解决。

虽然希望允许编译在没有 注释,我将不得不调查是否允许。例如, 编译器无法确定缺少的注释是否具有 元注释@Inherited。 这可能会给注释处理器带来问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 中的注释会导致编译时传递依赖吗? 的相关文章

随机推荐

  • DocuSign 嵌入签名 returnUrl 长度限制?

    在处理 DocuSign 嵌入式签名流程 过去曾有效 时 我注意到在签署文档后 我被发送回的 returnUrl 中缺少 event 参数 returnUrl 看起来像 http www example com index php para
  • 什么是 Android 的 Smali 代码

    我将学习一些有关 Dalvik VM dex 和 Smali 的知识 我已经阅读过有关 smali 的内容 但仍然无法清楚地了解它在编译器链中的位置 以及它的目的是什么 这里有一些问题 据我所知 dalvik 与其他虚拟机一样运行字节码 对
  • Neo4J - 存储到关系与节点中

    我想知道将数据存储到关系或节点中是否有任何优点或缺点 例如 如果我要将与讨论相关的评论存储到数据库中 我应该将评论数据存储在 评论 关系中 还是通过单独的关系存储在与讨论相关的 评论 节点中 正确的数据模型取决于您需要进行的查询类型 您应该
  • 设计时和运行时的 WPF 数据上下文

    我正在学习 WPF MVVM Light 和 ViewModelLocator 模式 但在主窗口的数据上下文方面遇到了困难 public class ViewModelLocator public ViewModelLocator var
  • 将 C++ 类的定义放入头文件中是一个好习惯吗?

    当我们用 Java Vala 或 C 设计类时 我们将定义和声明放在同一个源文件中 但在 C 中 传统上首选将定义和声明分开在两个或多个文件中 如果我只使用一个头文件并将所有内容都放入其中 就像 Java 一样 会发生什么 是否有性能损失或
  • OS X:如何获取 macOS 上桌面目录的路径?

    如何在 macOS 上以字符串形式获取桌面目录的文件路径 我需要用纯 C 或一些 C 级框架来完成它 这是一个简短的函数 它适用于更多基于 Unix 的系统 而不仅仅是 macOS 并返回current用户的桌面文件夹 include
  • create-react-app 显示了我在生产中的所有代码,如何隐藏它?

    在我的 chrome 源选项卡中 我可以按确切的文件夹位置查看所有文件 我怎样才能隐藏它们 这些不是我之前项目中的问题 该项目是在没有使用 create react app 的情况下制作的 根据create react app 这似乎是正确
  • 下拉菜单推开下面的 div

    当鼠标悬停在菜单上时 子菜单会 拒绝 下一个 div 如何将 div 固定在下面的位置 这是我的代码 box sizing border box body font family Helvetica Neue Helvetica Arial
  • 根据 MySQL 中的半径合并边界框内的长/纬度点

    这是我基本上想要实现的目标的图片 因此 正如标题所说 我想合并长 纬度点 它们的半径 例如 25 公里 触摸长 纬度点的边界框内 这是我非常简单的数据库结构 id long lat 1 90 27137 50 00702 2 92 2713
  • 字段初始化中未处理的异常

    Java 是否有任何语法来管理声明和初始化类的成员变量时可能引发的异常 public class MyClass Doesn t compile because constructor can throw IOException priva
  • Gitlab CI 同时在多个平台上运行

    我有一个针对多个操作系统 Linux Windows MacOS 以及多个 CPU 架构 i386 x86 64 arm Aarch64 编译和打包的 C 项目 为此 我使用 Jenkins 获取源代码并在每个系统上并行运行构建脚本 这是一
  • 在 DateTimePicker 中输入数据时移动到以下日期部分

    我有一个用户请求 我正在尝试满足 我能想到的最简单的解释方法是使用图片进行说明 Essentially the user is typing a ton of dates in Instead of typing the MM 反斜杠 或右
  • 如何在golang中使用LDFLAGS的相对路径

    我正在尝试构建一个使用静态库 a 文件 的 golang 程序 我的项目的目录结构如下 testserver bin pkg src logging testserver libtest a test go test go 中 cgo 的标
  • Laravel 4:使用数据在布局内嵌套视图

    我正在编写一个简单的应用程序 仅依赖于一些路线和视图 我已经设置了总体布局并使用以下内容成功嵌套了模板 路线 php View name layouts master master layout View of master Route g
  • 使用 INDEX-MATCH 进行多个非精确标准的查找 - 查找最符合条件的最近值时出现问题

    我正在尝试使用 INDEX MATCH 使用多个非精确条件进行查找 形式如下 索引 C314 C318 匹配 1 D314 D318 gt G313 E314 E318 gt G314 0 标准是 大于或等于金额 X 公式工作正常 但是当使
  • Flutter 提供的字体系列的完整列表?

    在 Flutter 中 我们可以使用 TextStyle 为文本提供所需的 fontFamily 属性 虽然某些 fontFamily 名称很明显并且确实有效 例如 Arial Courier Times 等 但可用选项的完整列表在哪里 文
  • Flickr 如何阻止人们从该网站下载图像?

    只是想知道 Flickr 如何阻止人们从其网站下载图像 他们用什么 图像上的透明 gif 您仍然可以通过查看 HTML 源并找到图像的实际 URL 来下载实际图像 例如 随机图像 http www flickr com photos 342
  • 同步与 ReadWriteLock 性能

    我试图证明当有很多读者而只有一些作者时同步会更慢 不知怎的 我证明了相反的情况 以 RW 为例 执行时间为 313 ms package zad3readWriteLockPerformance import java util Array
  • PHP 组件对象模型“访问被拒绝”

    我的开发环境是PHP 5 3 IIS 7 5 Window7 Home 我正在开发一个原型应用程序 它需要 PHP 函数 imagewindowgrab 该函数需要调用Windows组件对象模型 COM 我的单行代码是这样的 browser
  • Java 中的注释会导致编译时传递依赖吗?

    一个简单的例子 其中Ent java使用注释并使用必要的 jar 依赖项进行编译 然后Includer java编译后又导入Ent java ent java import javax persistence Entity import j