【问题标题】:Does removing annotation can cause runtime crash?删除注释会导致运行时崩溃吗?
【发布时间】:2017-05-10 18:35:13
【问题描述】:

以下库导致我的项目发生冲突,因此我必须将其删除。

编译'org.glassfish:javax.annotation:10.0-b28'

如果我删除了这个依赖项,那么我必须从项目中删除这些注释。

@Generated("org.jsonschema2pojo")

到目前为止,它在运行和编译时都没有产生任何影响。

但我需要对此进行确认。我用谷歌搜索了这个,但我仍然有一些困惑。

  • 这些注释对代码有影响吗? 我知道它们必须,这就是我们添加它们的原因,但会产生什么影响。

  • 删除这些是否会在运行时造成任何轻微或重大影响? 在编译时它没有给出任何警告或错误消息。

【问题讨论】:

    标签: java android performance android-layout annotations


    【解决方案1】:

    这取决于您使用的注释类型。在您的情况下,@Generated 只是一个标记注释,用于表示这段代码是自动生成的。删除它不会对代码的行为产生任何影响。

    @Autowired注解为例,这个注解是用来注入对象的,去掉肯定会有影响。

    【讨论】:

      【解决方案2】:

      不会有任何影响。此注解用于标记已生成的源代码。来自documentation.

      Generated 注解用于标记已经生成的源代码。

      使用 javax 注解

      此外,您无需拥有 org.glassfish:javax.annotation:10.0-b28 依赖项即可使用 @Generated 注释。它是 javax 包的一部分。只需导入javax.annotation.Generated;,您就不必删除注释。

      【讨论】:

      • 谢谢,默认导入这个库import org.parceler.Generated;,可以吗?无论如何,我将删除此注释。
      • 删除库。然后删除该导入并替换为import javax.annotation.Generated;,您将不必删除注释。
      • 非常感谢!! :)
      猜你喜欢
      • 2012-06-16
      • 1970-01-01
      • 2015-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多