http://download.oracle.com/javase/6/docs/api/java/lang/annotation/Target.html
此元注释表明声明的类型仅用作复杂注释类型声明中的成员类型。它不能用于直接注释任何东西:
@Target({})
public @interface MemberType {
...
}
Run Code Online (Sandbox Code Playgroud)
这是什么意思?任何使用这个的示例代码?
注意:我指的是 @Target 的空 args 使用,如 JavaDoc 中所述,而不是 Target 与 enum 常量的详细记录使用。
当注解只能在其他注解中使用(具有非空目标集)并且不能直接附加到任何东西时,使用空目标。在 JAXB 中使用这个的一个例子,其中@XmlNs注解有一个空的目标列表;下面的代码是从我自己的代码中提取的(有一些非常小的改动),是package-info.java这个特定包的完整文件:
@XmlSchema(namespace = Namespaces.MAIN,
xmlns = { @XmlNs(prefix = "xlink", namespaceURI = Namespaces.XLINK) },
elementFormDefault = QUALIFIED, attributeFormDefault = QUALIFIED)
package example.bindings;
import static javax.xml.bind.annotation.XmlNsForm.QUALIFIED;
import javax.xml.bind.annotation.XmlNs;
import javax.xml.bind.annotation.XmlSchema;
import example.common.Namespaces;
Run Code Online (Sandbox Code Playgroud)
该@XmlNs注释用于指示JAXB什么前缀用于XLink命名空间,但这些信息只能永远被放置在架构级别(从一般的XML的限制,但对大部分的问题),也因为可能有很多这样的映射,它不能直接附加到包,而是必须进入主@XmlSchema注释的数组值属性。
| 归档时间: |
|
| 查看次数: |
7494 次 |
| 最近记录: |