Java 中 package-info 这个类有啥作用,如何使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 中 package-info 这个类有啥作用,如何使用相关的知识,希望对你有一定的参考价值。

java中的package的意思是打包,即把当前的类放在哪个包下,通常放在类的首行,比如: package com.test; public class Test... 其意思就是将类Test打包放在com文件夹下的test文件夹下; 参考技术A 这篇文章讲解的很好:http://www.iteye.com/topic/806246

需要从绑定文件中生成 package-info.java 中的 JAXB 注释

【中文标题】需要从绑定文件中生成 package-info.java 中的 JAXB 注释【英文标题】:Need to generate JAXB annotions in package-info.java from binding file 【发布时间】:2011-08-25 04:34:34 【问题描述】:

我有一个XmlAdapter 的注解,我需要将它放入package-info.java 中。问题是,我们的package-info.java 是从XJC 自动生成的。有没有办法使用 JAXB 绑定文件在生成时自动将这个注解添加到 package-info.java 中?

@javax.xml.bind.annotation.adapters.XmlJavaTypeAdapters
(
    @javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter(value=Adapter.class,type=Original.class)
)

感谢您的帮助!

【问题讨论】:

【参考方案1】:

不幸的是,在外部绑定文件中定义自定义元素时,上面的优雅语法不起作用。 Annotate Plugin 为您提供了一种从 XJC 绑定自定义中读取注释并自动添加到您的 XmlAdapter 类中的方法。 因此,您的适配器类将被添加到您的 package-info.java。

<jaxb:bindings
  version="2.1"
  xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:annox="http://annox.dev.java.net" 
  jaxb:extensionBindingPrefixes="annox">

  <jaxb:bindings schemaLocation="schema.xsd" node="/xs:schema">
    ...
    <jaxb:bindings node="xs:complexType[@name='...']/xs:sequence/xs:element[@name='name']">
      <annox:annotate>
        <annox:annotate
          annox:class="org.hibernate.search.annotations.FieldBridge"
          impl="com.acme.foo.MyFieldBridge">
          <annox:annotate annox:field="params">
            <annox:annotate annox:class="org.hibernate.search.annotations.Parameter"
              name="foo"
              value="bar"/>
          </annox:annotate>
        </annox:annotate>
      </annox:annotate>
    </jaxb:bindings>
    ...
  </jaxb:bindings>

</jaxb:bindings>

生产:

@FieldBridge(impl = com.acme.foo.MyFieldBridge.class, params = 
  @Parameter(name = "foo", value = "bar")
)

另一种方法是将绑定添加到您的架构:直接在架构文件中:

见Annotate Plugin

【讨论】:

hmmmm...我有点困惑..您是说上面产生的输出将在我的适配器或 package-info.java 中产生? 在您的 package-info.java 中,但您可以为您的适配器执行此操作 除了使用适配器之外,还有其他方法可以使用绑定文件进行类替换吗?

以上是关于Java 中 package-info 这个类有啥作用,如何使用的主要内容,如果未能解决你的问题,请参考以下文章

java中接口和类有啥区别 java中接口和类有啥区别

Java package-info.java文件使用学习

Java package-info.java文件使用学习

java接口与抽象类有啥区别?

java中Method类有啥作用

Java 的 BufferedReader 和 InputStreamReader 类有啥区别?