为什么注释未保留在类文件中

时间:2018-09-12 15:24:03

标签: java java-annotations

如果定义了以下注释:

input_shape=(28,28,1)

然后使用它定义以下接口:

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface MyAnnot {
    public String value();
}

如果我随后运行以下命令:

  

javac MyClass.java

     

javap MyClass.class

然后我的输出是:

  

从“ MyClass.java”编译

     

公共接口MyClass {}

在我看来,注释没有保留?如果是这样,为什么会这样?

2 个答案:

答案 0 :(得分:1)

使用-v / -verbose选项来打印其他信息

> javap -c -v MyClass.class 

[...]

SourceFile: "MyClass.java"
RuntimeVisibleAnnotations:
  0: #24(#25=s#26)
    org.example.MyAnnot(
      value="somevalue"
    )

答案 1 :(得分:-1)

如果看到以下内容,您会发现它实际上保留了注释。只是javap没有在标准输出中显示它。使用-v选项进行详细显示会显示它:

page1methods.js