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();
}

有人可以向我解释这个符号吗?会好的。提前致谢。

尼里基

4

2 回答 2

2

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

有关注释的更多信息:http: //download.oracle.com/javase/1.5.0/docs/guide/language/annotations.html

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

于 2011-03-30T18:08:50.503 回答
0

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

有关详细信息,您可以开始阅读http://en.wikipedia.org/wiki/ASN.1#Standards

于 2011-09-15T20:37:32.047 回答