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

Java ASN.1/二进制注释特定注释?,java,asn.1,Java,Asn.1,我正在使用Java中的ASN.1环境“binary notes”。 首先,我手工创建了一个asn.1序列的类 @ASN1String(name = "", isUCS = false, stringType = UniversalTag.PrintableString) @ASN1Element(name = "firstName", isOptional = false, hasTag = false, hasDefaultValue = false) private String first

我正在使用Java中的ASN.1环境“binary notes”。 首先,我手工创建了一个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();
}
谁能给我解释一下这个符号吗? 那太好了。提前谢谢

在Java中,“@Foo”是一个注释。它的目的是让特定构建环境的一部分来解释它。通常注释会被Java代码块所取代

有关注释的更多信息:


我的猜测是,您需要查找ASN.1上的文档,以了解这些特定注释的作用。

我是这个框架的作者。这是用于控制某些ASN.1特性的字段/类的Java注释特性(元信息)。 对于您的示例,它是一个字符串字段,将ASN.1字节流编码为ASCII字符串(不是unicode字符串),不带标记,对于父结构(ASN.1序列),它不是可选的(必需的)

有关详细信息,请开始阅读