ASN.1 /二进制注释特定注释?

时间:2011-03-30 08:06:38

标签: java asn.1

我正在使用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

2 个答案:

答案 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