我正在使用Java中的“二进制笔记”ASN.1环境。 首先,我手工创建了一个asn.1序列。
@ASN1String(name = "", isUCS = false, stringType = UniversalTag.PrintableString)
@ASN1Element(name = "firstName", isOptional = false, hasTag = false, hasDefaultValue = false)
private String firstName = null;
现在我想知道那个“@”符号意味着什么?我试图在二进制笔记的源代码中找到提示,并发现以下内容:
package org.bn.annotations;
import java.lang.annotation.*;
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface ASN1String {
String name();
boolean isUCS();
int stringType();
}
有人可以向我解释这个符号吗? 会好的。提前谢谢。
nyyrikki
答案 0 :(得分:2)
在Java中,“@ Foo”是一个注释。它适用于特定构建环境的一部分来解释它。通常,注释会被大量的Java代码替换。
有关注释的更多信息:http://download.oracle.com/javase/1.5.0/docs/guide/language/annotations.html
我的猜测是你需要在ASN.1上查找文档才能知道这些特定注释的作用。
答案 1 :(得分:0)
我是这个框架的作者。这是用于控制某些ASN.1功能的字段/类的Java注释功能(元信息)。 对于您的示例,它是一个字符串字段,将ASN.1字节流编码为没有标记的ASCII字符串(不是unicode字符串),对于父结构(ASN.1序列),它不是可选的(必需的)。
有关详细信息,您可以开始阅读http://en.wikipedia.org/wiki/ASN.1#Standards